仅允许输入正整数的Javascript验证

12 浏览
0 Comments

仅允许输入正整数的Javascript验证

我有两个文本框,其中只允许输入正整数。

如果输入了任何字母或其他字符(例如%$&*£"),则应显示错误消息,并且这些值不得呈现为表格。

 

这行代码允许进行计算,但如何通过验证阻止在输入不正确的值时进行计算?目前,负数会被计算,输入字母会产生一个空表格,这不是我想要的结果:

(no1== no1.match(/^-\d+$/) ? alert("第一个数字必须是正数"): no1 = no1 ? no1 : 0);
        (no2== no2.match(/^-\d+$/) ? alert("第二个数字必须是正数"): no2 = no2 ? no2 : 0)
        var range1 = parseInt(no1);
        var range2 = parseInt(no2);

有什么想法吗?

0
0 Comments

问题:Javascript验证只允许输入正整数的问题出现的原因是什么?解决方法是什么?

原因:问题出现的原因是在某个表单中,需要对输入的值进行验证,只允许输入正整数,但是默认的HTML5表单验证规则中,并没有直接支持只允许输入正整数的规则。

解决方法:可以通过Javascript来实现对只允许输入正整数的验证。具体的解决方法如下:

1. 可以通过HTML5的表单验证规则来实现,只需要在输入框的属性中添加

type="number" min="1"

即可,这样当输入的值不是一个大于1的数字时,就无法提交表单。需要注意的是,这种方法只在Chrome浏览器中有效。

2. 可以通过Javascript的event.preventDefault()来取消点击事件,从而达到验证只允许输入正整数的目的。具体的做法是,在点击事件的处理函数中添加event.preventDefault(),然后通过正则表达式来判断输入的值是否为纯数字,如果不是,则取消点击事件。例如:

function powerOf(event) {
    if (!/^\d+$/.test(document.getElementById('input-1').value)) {
        event.preventDefault();
    }
}

这样当输入框的值不是纯数字时,点击事件就会被取消。

3. 另外,也可以通过一些其他的方法来实现只允许输入正整数的验证,比如使用一些特殊的HTML标签和属性,或者使用一些第三方库。具体的方法可以参考一些相关的答案和示例。

以上就是解决Javascript验证只允许输入正整数的问题的两种方法。通过HTML5的表单验证规则或者通过Javascript的event.preventDefault()来达到验证的目的。需要根据具体的需求和浏览器兼容性来选择合适的方法。

0