2012-04-24 342 views
23

通过使用jQuery插件验证,我试图,以及验证我的表单。当验证通过时,我想要一个JavaScript与表单中的值一起触发,然后停止。没有实际的表单提交浏览到一个新的/相同的网站。jquery验证:防止表单提交

这是可能的jQuery验证?

回答

40

你可以试试这个(Example):

$(function(){ 
    $("#myform").validate();  
    $("#myform").on('submit', function(e) { 
     var isvalid = $("#myform").valid(); 
     if (isvalid) { 
      e.preventDefault(); 
      alert(getvalues("myform")); 
     } 
    }); 
}); 

function getvalues(f) 
{ 
    var form=$("#"+f); 
    var str=''; 
    $("input:not('input:submit')", form).each(function(i){ 
     str+='\n'+$(this).prop('name')+': '+$(this).val(); 
    }); 
    return str; 
} 
+1

来到与相似的问题的页面。 'var isvalidate = $(“#myform”)。valid();'正是我在找的东西。谢谢+1 – 2012-11-16 10:05:58

+0

@亚当,不客气:-) – 2012-11-16 10:08:51

+0

奇怪的是,在我的情况下,'valid()'返回false,但我无法停止使用'return false'或'e.preventDefault()'提交表单,或者甚至都! – JacobIRR 2017-10-11 22:31:47

9

是:

$("form").submit(function(event) { 
    if (somethingIsInvalid) { 
     event.preventDefault(); 
    } 
}); 
6

有一个叫.valid()的方法的情况下,返回真有你没有错误形成,所以你可以用这个先验证,然后把此形式的文档是

http://docs.jquery.com/Plugins/Validation/valid

+4

出于某种原因,这似乎总是为我返回“真”。 – tirdadc 2016-03-27 23:40:56

0
$("#form").validate({ 
    rules: {...}, 
    submitHandler: function(form, event) { 
    event.preventDefault(); 
    alert("Do some stuff..."); 
    //submit via ajax 
    } 
});