2016-12-29 4 views
0

я действительно решить эту проблему, получите много вопроса, я хочу, чтобы создать мобильное приложение так, нужно Diplay номера клавиатуры: 0-9, хотят разрешить (,) в поле вводаКак отображать запятую или тысячуSeparator в 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

Вы можете переопределить numberfield так:

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', ** replace ** override: 'Ext.field.Number', **, можно использовать это или нет, как насчет фильтра char, кроме (0-9,) Как я могу использовать или как я могу написать его в коде, может ли помочь мне решить проблему –

+0

Вы можете «продлить» да. Затем вы можете использовать его как другое поле. Если вы хотите отфильтровать разные символы, вы должны добавить их в список 'specialChars'. (их ascii-коды) – abeyaz

+0

Поблагодарите ur aswer, Как насчет отображения на клавиатуре Мобильный телефон, Покажите только номер или нет, причина в моей проблеме - отображать только номер клавиатуры [0-9] и SpecialChar ** comma (,) **, –

Смежные вопросы