js控制input只能输入正整数和负正数 ,不符合规则的点击键盘无效,也不能复制!
求js 代码! 谢谢啦!!!
直接监听onkeypress事件吧。
txt.onkeypress = function(evt){
var evt = window.event||evt;
var keynum = evt.keyCode||evt.which;
var numcheck=/\d||-/;
var num = String.fromCharCode(keynum);
if(keynum==8 || keynum==13)
{
return true;
}
//return numcheck.test(num);
if(this.value==="")
{
return /[-1-9]/.test(num);
}
else{
return /[0-9]/.test(num);
}
}
}
txt是什么?
@丢失: input dom对象
@授之以渔: evt呢?
@丢失: 点击事件对象啊
@授之以渔: 是页面加载的时候执行这个代码么?
@丢失: 给dom对象绑定事件响应函数。需要dom对象加载完之后,所以一般放在window.onload事件响应函数体内,或者直接放在页面底部
@丢失:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style> </style> <script> window.onload=function(){ var txt = document.getElementById("input"); txt.onkeypress = function(evt){ var evt = window.event||evt; var keynum = evt.keyCode||evt.which; var num = String.fromCharCode(keynum); if(keynum==8 || keynum==13) { return true; } if(this.value==="") { return /[-1-9]/.test(num); } else{ return /[0-9]/.test(num); } } } </script> </head> <body> <div id="box"> <input type="text" id="input" oncopy="return false;" oncut="return false;" /> </div> </body> </html>
@授之以渔: OK 可以了 谢谢大神!搞定了!
@授之以渔: 大神再问一下,这个如果是中文输入法的话是不起作用的,有没有禁止切换输入法的功能?
@丢失: 这个好像设置input的ime-mode:disable就可以了
@丢失: ime-mode:disabled
@授之以渔: IE可以 但是谷歌浏览器就不起作用了
@丢失: 那我也不知道了,你在网上再找找吧。
每次输完你判断一下,如果符合你的要求你就把值填到文本框
我不怎么会正则,麻烦大神 给个正则
给你个判断整数的方法。自己去绑定事件
//input参数:input的ID
function checkRate(input)
{
var nubmer = parseInt(document.getElementById(input).value);
if(isNaN(nubmer)||nubmer<=0||!(/^\d+$/.test(nubmer))){
{
alert("请输入正确的数值,只允许输入整数!");
document.getElementById(input).value = "";
return false;
}
}
这个 不能实现啊 , 有没有通过编码 或者正则判断只能输入正整数和负整数的方法, 并且负号只能有一个 并且在第一位
@丢失: 这个方法里面不就是用正则和类型判断了?
@盟怀部孩: 能不能给个全面的 像我说的那样
@丢失: 尽量自己去思考,不然进步不了。
document.getElementById("****input的ID名*****").attachEvent('onpropertychange',function(obj){
var nubmer = parseInt(obj.value);
if(isNaN(nubmer)||nubmer<=0||!(/^\d+$/.test(nubmer))){
{
alert("请输入正确的数值,只允许输入整数!");
document.getElementById(input).value = "";
return false;
}
});