2012-04-24 610 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 
    } 
});