如何在textfield
的Sencha Touch中实现字母数字验证?我试过这种方式:
regex: /^[a-zA-Z0-9]*$/,
regexText: 'Invalid value in field',
但是当我输入#
符号或任何其他特殊字符时,它没有显示任何错误。
答案 0 :(得分:3)
@Benoit Cuvelier在评论中指出:
根据文件:docs.sencha.com/touch/2.1.0/#!/api/Ext.field.Text Textfield组件没有“正则表达式”属性(但在ExtJs中它有)。一世 认为你应该检查变更事件的价值
也就是说,使用keyup
侦听器的简单实现可能是:
{
xtype: 'textfield',
label: 'Only alphanumeric values',
name: 'alphanumeric',
regex: /^[a-zA-Z0-9]*$/,
listeners: {
keyup: function(field) {
var value = field.getValue();
if (value.length && !value.match(field.config.regex)) {
field.setStyle('border: 1px solid red;');
} else {
field.setStyle('border: 0;');
}
}
}
}