2012-01-03 3 views
10

を提出します。それがここで何らかのエラーjQueryのエラーIではJavaScriptとjQueryを使用して入力を検証する必要があるフォーム検証

を警告せずにフォームを送信し、私がこれまで持っているものです。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
    <script type="text/javascript"> 

    $(document).ready(function(){ 
    function go() { 
     if($('#name').val() == '') { 
      alert('error: name is required'); 
     } 
     $('form').submit(); 
    } 
    }); 


    </script> 
    </head> 

    <form method="post" action=""> 
    Name *<input type="text" name="name" id="name"/> 
    E-Mail *<input type="text" name="email" id="email"/> 

    <input class="submit" type="submit" value="Submit" name="submit" id="submit" onclick="go();"> 
    </form> 

私は名前に何かを入れた後、フォームを送信していない場合にアラートが表示されないのはなぜ?

+0

私は、[jQuery Validation](http://docs.jquery.com/Plugins/Validation) –

答えて

15

送信ボタンでonclickを使用するのではなく、フォーム要素でonsubmit="return go();を使用します。または、jQueryを使用します。$('form').submit(function(){ ... });

エラーが発生すると、それ以上実行されないようにするには、関数のreturn falseが必要です。

+0

を使用することをお勧めします。技術的には間違いはありませんが、特にクライアント側の検証を使用することを強くお勧めします。エラーを表示するボックス。 –

+1

あなたは何を意味するのか説明できますか? –

+0

@ liho1eyeなぜあなたはそれに対してアドバイスしますか?それはちょうど1つの部分です。サーバー側の検証が必要ですが、クライアント側の検証は、不完全な場合にフォームがサーバーに送信されて処理されないようにします。時間とHTTPリクエストを節約できます。 – dakdad

関連する問題