今天在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页面也更加简洁
1 楼
jaystefanie
2011-01-21
为啥不用numberfield