我有两个文本框,其中只允许正整数。 如果输入任何字母值或任何其他字符(例如%$& *£“),则应显示错误消息,且值不得呈现表格。
<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);
有什么想法吗?
答案 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。