防止表单提交

时间:2012-09-17 14:46:09

标签: javascript jquery javascript-events

我有这个

$("#contact-frm-2").bind("jqv.form.result", function(event , errorFound){
    if(!errorFound){
        alert('go!');
        event.preventDefault();
        return false;                               
    }
});

它应该验证表单是否有错误,当表单上没有错误时,警告" Go!"没有提交。 我正在使用您可以在http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/找到的jquery.ValidationEngine.js

我确定

event.preventDefault();
            return false;

应该阻止表单提交但仍在提交。有人能告诉我我错过了什么吗?感谢

4 个答案:

答案 0 :(得分:2)

"onsubmit" JavaScript event将为您处理此问题。

jQuery的:

$('#formid').submit(function(e) {
    e.preventDefault();
});

Pure JS:

document.getElementById('formid').addEventListener('submit', function(e) {
    e.preventDefault();
});

答案 1 :(得分:0)

$('#form_id').submit(function(e) {
    e.preventDefault();
    //...
});

答案 2 :(得分:0)

是的,return false;应阻止您的表单提交,但前提是您在实际的submit事件中执行该表单。上面的代码看起来依赖于插件。为什么不尝试将附加的侦听器附加到表单中的实际提交按钮。

$("#submit_btn").on('click',function(){
  return false;
});

答案 3 :(得分:0)

该插件具有可以使用的选项。其中一个是OnvalidationComplete,其功能如下所示:

jQuery("#contact-frm-2").validationEngine('attach', {
   promptPosition : "centerRight", scroll: true,
   onValidationComplete: function(form, status){
   alert("The form status is: " +status+", it will never submit");
   }  
});

完整文档在http://posabsolute.github.com/jQuery-Validation-Engine/