2009-09-08 9 views
13

MVCビューでは、私は以下のようなフォームを持っています。ユーザーが送信ボタンをクリックすると、まず何かをチェックしたいと思います。 OKの場合は、フォームを送信してください。チェックに合格しなかった場合は、ユーザーに警告メッセージを表示してから、ビューに留まります。私のサンプルコードは次のようになります:フォームの送信を停止するにはどうすればよいですか?

しかし、テストしても、答えが== "N"であっても、フォームはまだ送信されます。送信するフォームを停止するには?私は言葉 "リターン" を追加

<input id="btnSubmit" type="submit" value="Submit" onclick="return CheckingStatus();" /> 

注:

答えて

27

はに

<input id="btnSubmit" type="submit" value="Submit" onclick="return CheckingStatus();" /> 
6

変更にあなたのコードを

<input id="btnSubmit" type="submit" value="Submit" onclick="CheckingStatus();" /> 

を変更してみてください。

+0

はどうもありがとうございました。 – KentZhou

0

私はASP.NETボタンを使用するか、runt = "server"プロパティをHMTLボタンに追加し、UseSubmitBehavior = "false"プロパティを使用してポストバック/フォームの送信を無効にします。その後、form.Submit()を呼び出すことができます。またはあなたのJavaScriptの類似。

+0

これはMVCです(タグを参照)。ポストバックはありません。 –

7

それは行うことができます別の方法:

document.forms['MyForm'].onsubmit = CheckingStatus; 
+0

これは、フォームが送信できるいくつかの異なる方法(例えば、自動ポストバックドロップダウンリストボックス、送信ボタンなど)がある場合に便利です。このようにして、入力要素のonclickハンドラを上書きすることなく検証が行われることが保証されます。 –

+0

+1。フォームの検証/確認コードを入れる正しい場所は、常にform.onsubmitです。 JavaScriptから割り当てると、愚かな属性値 'return ...'ラッパーはありません。 – bobince

関連する問題