仅对正整数输入的Javascript验证

时间:2014-02-08 14:50:19

标签: javascript validation html-input

我有两个文本框,其中只允许正整数。 如果输入任何字母值或任何其他字符(例如%$& *£“),则应显示错误消息,且值不得呈现表格。

 <input type="button" value="total" name="B3" onclick="powerOf();">

此行允许进行计算,此验证如何阻止这种情况发生 何时输入错误的值?截至目前,减去数字的计算和输入字母表会产生一个空表,这不是我想要的:

(no1== no1.match(/^-\d+$/) ? alert("First number must be positive"): no1 = no1 ? no1 : 0);
        (no2== no2.match(/^-\d+$/) ? alert("Second number must be positive"): no2 = no2 ? no2 : 0)

        var range1 = parseInt(no1);
        var range2 = parseInt(no2);

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

注意:您只需通过HTML5表单验证即可完成此操作:

<input type="number" min="1">

然后,除非输入的值高于1,否则您将无法提交表单。但这似乎仅适用于Chrome。


要回答您的问题,您要找的是event.preventDefault()。如果您将onclick功能更改为:

 <input type="button" value="total" name="B3" onclick="powerOf(event);">

然后您可以在event.preventDefault()函数中运行powerOf,当您运行该函数时,该事件将被“取消”。例如:

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

id="input-1"的输入值时,将取消点击事件。

有关工作示例,请参阅this demo