2013-10-31 183 views
0

我有要求,其中textfield/numberfield應該只允許0 to 99999.99之間的值,即具有2個小數位的5位數字。限制在ExtJs文本框/編號字段中輸入的輸入

用戶應限制使用任何無效的號碼。

我在正則表達式不好,但會解決我的問題嗎? 任何指針來解決這個問題將不勝感激。

我需要限制用戶輸入超過5位數的任何值。 5位後只能放置一個小數,超出2位數

有什麼建議嗎?

回答

1
Ext.create('Ext.form.Panel', { 
title: 'On The Wall', 
width: 300, 
bodyPadding: 10, 
renderTo: Ext.getBody(), 
items: [{ 
    xtype: 'numberfield', 
    anchor: '100%', 
    name: 'bottles', 
    fieldLabel: 'Bottles of Beer', 
    value: 0, 
    maxValue: 99999.99, 
    minValue: 0 
}], 
buttons: [{ 
    text: 'Take one down, pass it around', 
    handler: function() { 
     this.up('form').down('[name=bottles]').spinDown(); 
    } 
}] 

});
from:http://docs-origin.sencha.com/extjs/4.0.7/#!/api/Ext.form.field.Number

+0

感謝您的回覆......但是spindown不會解決問題,因爲這會將任何大於最大值的值更改爲最大值 – sagwasule

0

您需要添加自定義驗證類型VTypes

addCustomVtypes : function() { 
    var mRegex = /^\d{0,5}(\.\d{0,2})?$/; 

    Ext.apply(Ext.form.field.VTypes, { 
     mRegex : function(val, field) { 
      return ralphaNumHyphen.test(val); 
     }, 
     mRegexText : 'Invalid input. Message here.', 
     mRegexMask : /\d{0,5}(\.\d{0,2})?$/i 
    }); 
} 

你可以在應用程序啓動時調用它。

然後,在您的文本框中添加vtype: mRegex