フォームが有効な場合にのみユーザーがクリックできるような方法でフォームに検証エラーがある場合、フォーム送信ボタンを無効/送信する方法はありますか? ASP.Net MVC 4 とカミソリを使用した「リモート」属性の検証で目立たない検証を使用しています。
よろしくお願いします
フォームが有効な場合にのみユーザーがクリックできるような方法でフォームに検証エラーがある場合、フォーム送信ボタンを無効/送信する方法はありますか? ASP.Net MVC 4 とカミソリを使用した「リモート」属性の検証で目立たない検証を使用しています。
よろしくお願いします
検証を行っている場所によって異なります。jquery を使用してサーバー側で実行している場合は、チェックに e.preventDefault を追加して、無効であり、条件が満たされるまでボタンのクリックが発生しないようにすることができます。属性を使用してサーバー側の検証を行っている場合は、次のようにモデルの状態を確認できます
if (ModelState.IsValid){
}else{
}
モデルの状態が有効な場合 (データがすべてのチェックに合格した場合)、1 つのコード セットを実行します。モデルの状態が無効な場合は、ビューを返して開始した場所に戻り、ユーザーに失敗したものを含むメッセージを渡します。うまくいけば、これが役に立ちます。
アップデート:
コメントの編集を見ました。ajax 呼び出しの場合は、デフォルトの防止を使用する必要があります。
$('.SubmitButton').on('click', function(e){
$.ajax({
//your call
success: function(result){
if(result.false){
e.preventDefault();
alert(result.message);
}
}
});
});
そのため、呼び出しが成功すると、submit 呼び出しが実行されます。false の場合、jquery はボタンのクリックを停止し、メッセージを表示するか、他の操作を行うことができます。