我的HTML head
部分有一个JavaScript函数
<script>
function validateForm()
{
var apple = document.getElementById('apple').value;
var err = 0;
if (isNaN(apple)) {
err += 1;
}
if (err != 0) {
alert('Please check your input!');
return false;
}
else
return true;
}
</script>
表格如下所示:
<form name="orderForm" onSubmit="return validateForm();" method="post">
<div class="input-control text span5">
<input class="span5" type="text" placeholder="Each @ $4.9" id="apple" name="apple" onChange='checkApple(this.value)'>
</div>
</form>
所有括号都已完成且没有拼写错误。
当我提交带有非数字值的表单时,表单仍然会被提交而不是错误。我可以知道这有什么问题吗?
答案 0 :(得分:1)
你需要接受一个事件:
function validateForm(e) {
并阻止它:
if (err != 0) {
e.preventDefault()
...
在一个不相关的说明中,我建议您重新构建代码,使其不那么复杂,例如:
var apple = document.getElementById('apple').value;
if (isNaN(apple)) {
...
无需err
变量。
答案 1 :(得分:0)
您必须输入type =“submit”或按钮类型=“提交”才能触发onsubmit
答案 2 :(得分:0)
如果您尝试检查输入是否为数字,则可能有效:
function validateForm()
{
var apple = document.getElementById('apple').value;
var err = 0;
if (!isNaN(parseFloat(apple)) && isFinite(apple)) {
err += 1;
}
if (err != 0) {
alert('Please check your input!');
return false;
}
else
return true;
}