2014-02-07 82 views
1

我有一个表单,我想验证客户端。它是一个小表单,所以我尝试着自己做这个,而不使用任何插件。但是,如果表单验证,我希望它无奈地取代。例如防止表单提交验证并正常提交

$(documet).ready(function(){ 
    $(".myform").on('submit', function (event){ 
     event.preventDefault(); //prevent it from submitting 
     validate = validateForm(); //function to validate fields 
     if (validate){ 
      this.submit();//if everything is ok submit it normally 
     } 
    }) 
}); 

但表单不会提交自己。我相信它与event.preventDefault()有关。在撤销preventDefault()之后调用submit()方法吗?我应该把防止默认设置为

if (!validate){ 
    event.preventDefault(); 
}else{ 
    this.submit(); 
} 

这样做的方法是什么?

回答

2

刚刚返回true提交表单

if (!validate){ 
    event.preventDefault(); 
}else{ 
    return true; 
} 

或使用$(this).submit();

或只是如果条件不留必要的其他

if (!validate){ 
    event.preventDefault(); 
} 
+0

这不起作用,我把preventDefault()里面,如果仍然不会提交表单(不张贴) – Apostolos

+1

@Apostolos:检查函数validateForm()正确返回 –

+0

true。我必须检查validateForm()。这个提交创建了另一个问题...它进入一个循环:) – Apostolos

0

我们可以使用类型= “按钮”,而不是类型=“提交”如下

<input type="button" onclick="myFunction()" value="Submit form"> 

function myFunction() 
{ 
validate = validateForm(); 
document.getElementById("myForm").submit(); 
} 
+0

但这不会阻止我的表单提交 – Apostolos

+0

使用类型按钮并返回false.function myFunction() validate = validateForm(); 返回false; }检查validform函数,你可以添加返回false;在函数结束时。 – raj