2012-04-24 9 views
23

jQueryプラグインの検証を使用して、フォームを検証しようとしています。検証がパスすると、javascriptがフォームの値を呼び出して停止し、その後停止します。新しい/同じサイトを参照して実際にフォームを提出することはありません。jquery validation:フォーム提出を防止

これは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 –

+0

@Adam、あなたは歓迎です:-) –

+0

私の場合、 'valid()'はfalseを返していますが、 'return false'や' e.preventDefault() 'やさらにはどちらも! – JacobIRR

9

はい:

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

(.validと呼ばれる方法があります)trueを返す場合には、あなたがこれを最初に検証した後、ここにドキュメント

だフォームを送信することができますので、あなたの中にエラーが、形成していないがあります

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

+4

これはいつも私にとって「真実」を返すようです。 – tirdadc

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