2014-12-07 88 views
8

如何保留默认的HTML表单验证并禁止表单提交?我曾尝试使用event.preventDefault()return false。两人都能成功阻止提交表单,但都无法通过表单验证。我也试过this solution,但即使这样也行不通。防止表单提交但保留表单验证

有人能帮助我吗?

回答

8

event.preventDefault()并返回false;如果用于表单提交,则工作。 html5验证仍然存在。

http://jsfiddle.net/axax06/srn3znxj/2/

HTML:

<form action="" method="post"> 
    <input id="name" type="text" required="required" /> 
    <input id="email" type="email" required="required" /> 
    <input type="submit" id="btnSubmit" /> 
</form> 

JS:

jQuery("form").submit(function(e){ 
    e.preventDefault(); 
    //or 
    //return false; 
}); 
+0

注意,从一个jQuery事件中返回'FALSE'将*也*调用一个隐含的'event.stopProgagation()' 。从非jQuery事件中它只会触发'event.preventDefault()'。所以你给出的两种方法有不同的结果。看到这里:https://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false – Jason 2017-08-06 00:27:02