文本框只能输入数字
最近在做jsp动态表格的时候,常常会遇到一些金额、数量等,只能输入数字,问题虽然简单,但是走了一些弯路,在此总结一下。
这个问题有三种解决方案,第一种最适用。
1.使用isNaN()函数
isNaN()的缺点就在于 null、空格以及空串会被按照0来处理,所以需要前面剔除;
NaN: Not a Number
/**
*判断是否是数字
**/
1 2 3 4 5 6 7 8 9 10 11 |
|
上段js可以直接引入项目,在需要判断的地方直接调用即可,是最为合理的一种方案!
if (!isRealNum(amount)) { $("#zcsg_yz").html("*<Spring:message code='peraseEnter.number'/>"); $("#zcsg_yz").css("display", "inline"); tds.eq(3).children().val(''); return; }
2.设置input的type属性为“number”,此种方法虽然可以达到目的,但是存在着两个问题;
<1>之前给input设置的
maxlength="20"
不起作用了,也就是说你控制的最大值可以通过min、max 和 step 属性去设置
注:min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定(约束)。 max 属性规定输入域所允许的最大值。 min 属性规定输入域所允许的最小值。 step 属性为输入域规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)。
<2>样式问题
在input的最右边会产生两个上下箭头,点击箭头数字会加减,由于样式与表格不搭,所有没有采用;
3.正则表达式验证
这种也可以,具体的js为:
var price = tds.eq(2).children().val() - 0; if (price == "" || price == null) { price = 0; } var pattern = /^[0-9]+(.[0-9]{0,3})?$/; if (!pattern.test(price)) { $("#zcsg_yz").html("*请输入数字"); $("#zcsg_yz").css("display", "inline"); tds.eq(2).children().val(''); return; }
然后在input里面加onkeyup、onkeydown事件调用。
但是在实际过程中,做了这种校验后,当我输入121.的时候,会校验失败,这也就是我最后用第一种的原因。
以上纯手打,如有不当之处,烦请指正!
相关阅读
2015年3月22日,中国(深圳)IT领袖峰会在深圳召开,马云并未到场,但是让人送来了他的录制视频,视频中马云表示整个世界将很快从IT时代走进D
在COSMIC方法中,功能处理可拆分为四种数据移动:输入,输出,读,写。数据移动是最小的、不可再拆分的、软件内部的动作。在数据移动中包含
关于FileInputStream 它用于读取本地文件中的字节数据,继承自InputStream类,由于所有的文件都是以字节为向导,因此它适用于操
iphone未越狱使用iphone九宫格输入法 搜狗输入法使用
搜狗输入板除了支持短信和邮件之外,还多了微博和微信的文字转换。在搜狗输入板中编辑好文字后,可以通过点击界面顶端的短信、邮件、
转眼间又到了一周域名总结的时候,本周数字域名表现得格外出彩,作为米市的硬通货,品相突出的数字米丝毫不受行情影响,频繁曝出交易的消