今天在ext的textfield里面写了正则表达式来限制用户填写的东西
例如面积强制要求面积由正数表达而且可以考虑到小数点,但是小数点后面的位数不能超过6位,一般我们都会考虑用正则表达式来进行限制
例如:
{xtype:'textfield',
id:'storeArea',
name: 'storeArea',
fieldLabel: '仓库面积(平方米)',
vtype:'area',
regex:/^[0-9]+(.[0-9]{0,6})?$/,
regexText:'用正数组成小数点后面不能超过6位',
maxLength:24,
anchor:'95%'}
regex:/^[0-9]+(.[0-9]{0,6})?$/,
regexText:'用正数组成小数点后面不能超过6位'
这样强加在textfield里面,这样肯定会有效果,不过这样也有一个不好的地方,就是你还是可以输入其它的东西,例如输入了一些英文字母进去,它可以让你进行输入,然后在提示你 '用正数组成小数点后面不能超过6位'
如果用了js的vtype 来进行判断,这样的话用户根本就填写不了初数字和小数点以外的东西进去, textfield根本就不接受这样东西的填入,
首先在js页面中 添加属性
Ext.apply(Ext.form.VTypes, {
//面积 限制小数点后的位数的限制,只能输入小数点后的6位 22.222222
"area":function(_v){
return /^[0-9]+(.[0-9]{0,6})?$/.test(_v); //利用正则来和传进来的值进行判断
},
"areaText": "只能用正数组成小数点后面不能超过6位", //用来提示的作用
"areaMask":/[0-9\.]/i //只准用户填入 0-9 和 . 其他的就接受不了
});
//在jsp页面中先调用js再直接调用 vtype("area")
//例如:
{xtype:'textfield',
id:'storeArea',
name: 'storeArea',
fieldLabel: '仓库面积(平方米)',
vtype:'area',
maxLength:24,
anchor:'95%'}
可以将页面用的判断统一写在一个js里面 这样有利于系统的管理,使jsp页面也更加简洁