目前,extjs号码字段允许“ - ”连字符,而不是数字进入该字段。如何限制输入?如果我提供自定义vtype验证,它只在我提交后才会检查。
答案 0 :(得分:1)
使用autoStripChars并从initComponent中的allowed中删除连字符。更正后的代码。
autoStripChars: true,
initComponent: function() {
var me = this,
allowed;
me.callParent();
me.setMinValue(me.minValue);
me.setMaxValue(me.maxValue);
// Build regexes for masking and stripping based on the configured options
if (me.disableKeyFilter !== true) {
allowed = me.baseChars + '';
if (me.allowDecimals) {
allowed += me.decimalSeparator;
}
/* removed code
if (me.minValue < 0) {
allowed += '-';
}
*/
allowed = Ext.String.escapeRegex(allowed);
me.maskRe = new RegExp('[' + allowed + ']');
if (me.autoStripChars) {
me.stripCharsRe = new RegExp('[^' + allowed + ']', 'gi');
}
}
}
答案 1 :(得分:0)
您需要创建自定义VType。在文本字段中进行任何更改后调用VType验证,您可以配置允许输入的字符:
http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.field.VTypes
查看xxxMask
财产。
答案 2 :(得分:0)
您还可以使用带有maskRe config的常规Textfield。
maskRe: /[0-9]/
答案 3 :(得分:0)
与@ lagnat的回复相似,即白名单,您可以使用stripCharsRe配置将字符列入黑名单。
stripCharsRe: /-/
如果您想限制负值。
minValue: 0
答案 4 :(得分:0)
{
minValue: 0,
autoStripChars: true,
allowExponential: false
}