我做了个页面想试一下用正则限制只能输入数字,发现个问题,在前台写 onkeydown="value=value.replace(/[^\d]/g,'')" 这个的话,文本框里输字母第一个(也只有第一个)字母会显示出来,然后随着你不断的输,这个字母一直会变成你输的最后一个字母,这个是怎么回事?如果我把属性改成onkeyup的话,输进去的也会显示出来,但是显示了一下就消失了,我想要的效果是如果限制数字的话,那就跟本输不进去,不要显示出来,有什么方法可以实现这个吗?
还有,好像在页面上实现这个必须得用JS,但是如果客户JS禁用的话那就失效了,所以是不是最稳妥最好的方法是不在控件上限制而是提交的时候在后台上验证,这是最简单也最保险的做法?
最后,在C#的后台怎么用正则?tb_t.Text = "hello";这个变量里的值要是想用正则验证是不是数字的话怎么写?
还有,好像在页面上实现这个必须得用JS,但是如果客户JS禁用的话那就失效了,所以是不是最稳妥最好的方法是不在控件上限制而是提交的时候在后台上验证,这是最简单也最保险的做法?
最后,在C#的后台怎么用正则?tb_t.Text = "hello";这个变量里的值要是想用正则验证是不是数字的话怎么写?
解决方案 »
- extjs 使用 Poxy 请求webService 的Content-Type问题,分不够,请谅解!
- javascript图片的轮换效果改进
- 如何将两个文本框的内容填充到一个文本框中
- extjs 2.2.1的combo 的store 从数据库取数据的写法?
- 关于mozilla/4.0的意义?
- 我怎样子才能提取下面函数的值,删掉对应行数中数据库里的数据啊???!!
- 鼠标焦点在iframe里的问题
- firefox中网页对话框的替代解决方法是什么?
- 对颜色有研究的朋友请进
- CGI处理问题,解决给分!
- 关于google浏览器中 location.href 的问题
- 请问怎么写,不可以零开头的数字的正则表达式,3Q
<input name="inputx" type="text" id="nputx" size="20" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');">
你用keydown的话对event.keyCode做判断就好了
<input type="text" onkeydown="if(event.keyCode==8)return true;if(event.keyCode<48||event.keyCode>57)return false;">