2017-04-11 72 views
-1

如何在文本字段上的每2個字符後添加點(。)。在文本字段上輸入每2個字符後添加點數extjs 5

有沒有具體的方法來做到這一點?

我的代碼:

var txtNoNpwp = { 
    afterLabelTextTpl: required, 
    allowBlank: false, 
    anchor: '100%', 
    labelAlign: 'left', 
    labelWidth: 130, 
    fieldLabel: 'No NPWP', 
    id: 'txtNoNpwp', 
    name: 'txtNoNpwp', 
    xtype: 'textfield' 
}; 
+0

您可以捕獲keyup事件並在每個第二個字符後面添加'.'。我想這是我能夠在沒有看到你的代碼的情況下做到的。請分享您的代碼和**您在哪裏卡住** – Rajesh

+0

這可能有所幫助:https://www.sencha.com/forum/showthread.php?106101-Keyup-on-a-TextField-SearchFIeld – Rajesh

+0

謝謝@Rajesh我將嘗試 – andrei

回答

1

可以在change事件的值更改爲所需的格式。 每當該字段的值發生更改時,都會使用新值和舊值調用它。

首先使用以下代碼刪除以前的格式。

newValue = newValue.replace(/\./g, ''); 

然後應用新的格式。

newValue = newValue.replace(/.{2}/g, function (substr) { 
    return substr + '.' 
}); 

最後,你必須與

field.setRawValue(newValue); 

完整的代碼設置新的值應該是這樣的,看到working Sencha Fiddle

var txtNoNpwp = { 
    listeners: { 
     change: function (field, newValue) { 
      newValue = newValue.replace(/\./g, ''); // remove previous format 
      newValue = newValue.replace(/.{2}/g, function (substr) { // apply new format 
       return substr + '.' 
      }); 
      field.setRawValue(newValue); 
     } 
    }, 
    xtype: 'textfield', 
    //... 
}; 
+0

這個答案最適合我。十分感謝 ! @安迪-Y – andrei

相關問題