2016-12-29 182 views
0

我真的要解決這個問題,得到很多的問題,我想創建移動應用程序,所以,需要diplay鍵盤的數字:0-9,要允許(,)在輸入字段如何在extjs NumberFiled中顯示逗號或千分隔符?

{ 

    xtype: 'numberfield', 
    name:'appliedAmount', 
    readOnly: false, 
    itemId: 'payment1', 
    cls : 'txtAlignRight', 
    flex : 4, 
    value: '0', 
    anchor: '100%', 
    useThousandSeparator: true, 
    thousandSeparator:',', 
    maxLength : 15, 
    autoComplete: false, 
    autoCorrect: false, 
    clearIcon: false, 
    originalValue: true, 
    required: true, 
    listeners:{ 
     focus:function(obj,nf,evt){ 
     App.security.GlobalFunc.spliteNum(obj); 
     }, 
    }, 

    spliteNum: function(obj){ 

      var num = obj.getValue(); 
      num.toString().replace(/\B(?=(\w{3})+(?!\d))/g, ","); 
      console.info('num',num) 

回答

0

您可以覆蓋這樣的數字字段:

Ext.define('Ext.override.field.Number', { 
     override: 'Ext.field.Number', 

     initialize: function(){ 
      this.callParent(arguments); 
      this.element.down("input").on('keydown', this.filterChars, this); 
     }, 

     /** 
     * prevent undefined characters for decimals 
     */ 
     filterChars: function(e){ 
      var keyCode = e.event.keyCode; 
      var specialChars = [13,8,46,37,38,39,40,191]; // enter, backspace, delete, up, down, left, right, comma 

      if(!((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105) || (specialChars.indexOf(keyCode) != -1))){ 
       e.stopEvent(); 
       return false; 
      } 
     } 
    }); 

這樣,該字段將過濾除(0-9,)以外的所有字符。

+0

最好謝謝先生,我可以問你一些如果我使用**範圍:'Ext.field.Number',**替換**覆蓋:'Ext.field.Number',**,可以使用它或不,如何過濾器字符除(0-9,)如何使用或如何在代碼中寫它,你能幫我解決問題 –

+0

你可以用戶'擴展'是的。然後你可以用它作爲一個不同的領域。如果你想過濾不同的字符,你必須將它添加到'specialChars'列表中。 (他們的ascii碼) – abeyaz

+0

謝謝你,aster鍵盤顯示手機,只顯示數字或不是,在我的問題原因只想顯示鍵盤數[0-9]和SpecialChar **逗號(,)**, –

相關問題