Javascript函数未触发

时间:2013-08-30 12:18:26

标签: javascript html

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

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

当我提交带有非数字值的表单时,表单仍然会被提交而不是错误。我可以知道这有什么问题吗?

3 个答案:

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