2011-01-08 9 views
0

HTMLコード検証リターン偽を使用する理由jqueryのフォーム---

   var name = $("input#name").val(); 
    if (name == "") { 
    $("label#name_error").show(); 
    $("input#name").focus(); 
    return false; 
    } 

を;?出口を使うことができますか?ありがとうございました。

答えて

1

あなたの検証コードは、このような継続するためにフォームの送信をブロックするために使用される戻り偽

$('form').onSubmit(function(event) { 
    // do validation 
    return false; 
} 

に通りをonSubmitイベントチェーンで呼び出されると仮定すると。それがなければ、フォームの提出は継続され、アクションページがロードされます。

「return false;」以外の場合は、「event.preventDefault();」を追加することもできます。フォームの送信をブロックします。

他のイベントでも同じ方法を使用できます。たとえば、あなたが(デフォルトではHREFに指定されたページをロードします)リンクからクリックイベントをブロックしたい場合は、あなたができる:

$('a').click(function(event) { 
    event.preventDefault(); 
    return false; 
} 
+0

しかし、あなたはフィールドを検証した後に、あなたは投稿を送る必要がありますか? –

+0

必ずしもそうではありません..フォームをページでリロードせずにajaxを使用してバックグラウンドで送信する場合は、フォームをシリアル化してポストを使用して送信する必要があります。クライアント側のjsの検証..検証することができた場合はfalseを返します。検証が失敗した場合..もちろん、検証が成功した場合は、falseまたはpreventDefaultを返す必要はありません。 –

0

return falseとすると、実際にはデフォルト動作(この場合はサブミッション)が防止されます。

+0

私はリターン0を使用するか、終了できますか? – runeveryday

+1

@runeveryday - ただfalseを返すだけです。これは、ほとんどの人が行動を抑制するために見ると予想されるものです。あなたはreturn 0を使うことができるかもしれませんが、システムの重大なバグを修正しようとしているあなたのコードをいつ見ているのか、みんながあなたのやっていることをもっと難しく思うようにしましょう。好奇心が強いなら、それには何も問題はありません。それを試してください:)しかし、falseを使用してください。 – jmort253

0

exitはJavaScriptではありませんので!