首页 新闻 会员 周边

js控制input只能输入正整数和负正数 在线等!!!急!!!

0
悬赏园豆:10 [已解决问题] 解决于 2016-11-03 15:37

js控制input只能输入正整数和负正数 ,不符合规则的点击键盘无效,也不能复制!

问题补充:

求js 代码! 谢谢啦!!!

丢失的主页 丢失 | 初学一级 | 园豆:193
提问于:2016-11-03 14:08
< >
分享
最佳答案
1

直接监听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);
}
}
}

收获园豆:10
授之以渔 | 小虾三级 |园豆:1107 | 2016-11-03 15:08

txt是什么?

丢失 | 园豆:193 (初学一级) | 2016-11-03 15:21

@丢失: input dom对象

授之以渔 | 园豆:1107 (小虾三级) | 2016-11-03 15:23

@授之以渔: evt呢?

丢失 | 园豆:193 (初学一级) | 2016-11-03 15:26

@丢失: 点击事件对象啊

授之以渔 | 园豆:1107 (小虾三级) | 2016-11-03 15:28

@授之以渔: 是页面加载的时候执行这个代码么?

丢失 | 园豆:193 (初学一级) | 2016-11-03 15:30

@丢失: 给dom对象绑定事件响应函数。需要dom对象加载完之后,所以一般放在window.onload事件响应函数体内,或者直接放在页面底部

授之以渔 | 园豆:1107 (小虾三级) | 2016-11-03 15:32

@丢失: 

<!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>
授之以渔 | 园豆:1107 (小虾三级) | 2016-11-03 15:34

@授之以渔: OK  可以了 谢谢大神!搞定了!

丢失 | 园豆:193 (初学一级) | 2016-11-03 15:35

@授之以渔: 大神再问一下,这个如果是中文输入法的话是不起作用的,有没有禁止切换输入法的功能?

丢失 | 园豆:193 (初学一级) | 2016-11-03 15:51

@丢失: 这个好像设置input的ime-mode:disable就可以了

授之以渔 | 园豆:1107 (小虾三级) | 2016-11-03 16:06

@丢失: ime-mode:disabled

授之以渔 | 园豆:1107 (小虾三级) | 2016-11-03 16:07

@授之以渔: IE可以 但是谷歌浏览器就不起作用了

丢失 | 园豆:193 (初学一级) | 2016-11-03 16:07

@丢失: 那我也不知道了,你在网上再找找吧。

授之以渔 | 园豆:1107 (小虾三级) | 2016-11-03 16:08
其他回答(2)
0

每次输完你判断一下,如果符合你的要求你就把值填到文本框

心怀宇宙 | 园豆:643 (小虾三级) | 2016-11-03 14:12

我不怎么会正则,麻烦大神 给个正则

支持(0) 反对(0) 丢失 | 园豆:193 (初学一级) | 2016-11-03 14:14
0

给你个判断整数的方法。自己去绑定事件

//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;

}

}

盟怀部孩 | 园豆:878 (小虾三级) | 2016-11-03 14:15

这个 不能实现啊 , 有没有通过编码 或者正则判断只能输入正整数和负整数的方法, 并且负号只能有一个 并且在第一位

支持(0) 反对(0) 丢失 | 园豆:193 (初学一级) | 2016-11-03 14:23

@丢失: 这个方法里面不就是用正则和类型判断了?

支持(0) 反对(0) 盟怀部孩 | 园豆:878 (小虾三级) | 2016-11-03 14:23

@盟怀部孩: 能不能给个全面的 像我说的那样

支持(0) 反对(0) 丢失 | 园豆:193 (初学一级) | 2016-11-03 14:25

@丢失: 尽量自己去思考,不然进步不了。


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;

}

});

支持(0) 反对(0) 盟怀部孩 | 园豆:878 (小虾三级) | 2016-11-03 14:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册