【发布时间】:2020-05-14 02:07:51
【问题描述】:
我不确定我做错了什么...当我不输入任何内容并提交时,似乎无法让此表单显示警报...
<script>
function validate() {
var n1 = document.forms["GoToPage"]["page"].value;
if ( isNaN(n1) ) {
return true;
} else {
alert("Must be a Number!");
return false;
}
}
</script>
<form name="GoToPage" method="GET">
<input type="number" min="1" max="1000" name="page" size="4" />
<input type="submit" value="Go" onclick="return validate();" />
</form>
【问题讨论】:
-
逻辑错误,isNaN如果将值转换为数字结果为NaN,则返回true。如果用户输入说“2”(注意表单控件的值始终是字符串),那么
isNaN('2')将返回false并执行到else 分支。此外,验证应该在表单的提交处理程序上,而不是按钮上,因为您可以在不点击按钮的情况下提交表单。
标签: javascript validation onclick onsubmit