未触发Javascript函数

Javascript function not triggerred

本文关键字:函数 Javascript      更新时间:2023-09-26

我在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>

所有括号都已完成,没有拼写错误。

当我提交带有非数值的表单时,表单仍然会被提交,而不会出错。我能知道这个怎么了吗?

您需要接受一个事件:

function validateForm(e) {

并防止它:

if (err != 0) {
    e.preventDefault()
    ...

在一个无关的问题上,我建议你重组你的代码,这样它就不那么复杂了,比如:

var apple = document.getElementById('apple').value;
if (isNaN(apple)) {
    ...

不需要err变量。

您必须具有输入type="submit"或按钮type="submit",onsubmit才能触发

如果您试图检查输入是否为数字,这可能会起作用:

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; 
}