12

フォームがあり、目立たない検証が有効になっています。デフォルトでは、submit メソッドでクライアント側の検証がトリガーされ、(エラーがある場合) フォームは次のようになります。

ここに画像の説明を入力

検証は、データがサーバーに送信される前でも行われます。

$.ajax メソッドを使用する場合、この動作は機能しません。クライアント側の検証が機能しません。JavaScript のすべてのフィールドを手動でチェックする必要があり、DataAnnotations のすべての美しさが失われます。

より良い解決策はありますか?jquery のsubmit()を使用することもできましたが、 $.ajaxのようなコールバックはないと思います。

4

4 に答える 4

12

おー...

if (form.valid()) // do submit
于 2011-05-24T17:10:46.507 に答える
2

やった...

$("#form-submit-button").click(function (e) {
    e.preventDefault(); // Stops the form automatically submitting
    if ($("#my-form").valid()) {
        $("#my-form").submit();
    }
});

これらのテキストボックスをカレンダーコントロールにするプラグインを備えたテキストボックスがある場合、これも良い解決策のようです。私がこれを言う唯一の理由は、MVC フォームで Zebra Datepicker を使用し、カレンダーの日付ピッカーにフォーカスがある場合に無効なフォームを送信するためです。以下のコードを使用すると、これが停止します。

于 2016-05-09T14:42:40.567 に答える
2

フォームが有効かどうかを確認する前に、フォームを強制的に検証する必要があります。このようなもの:

var form = $( "#myform" );
form.validate();
if (form.valid()) {
    // ...
}
于 2013-11-26T12:52:18.137 に答える
0

私はYablargoが抱えていたのと同じ問題を抱えていました。それは、有効は関数ではないと言っていたので、私はこれを思いつきました:

送信ボタンのonclickハンドラーには、次のように入力します。

onclick = "return $(this).closest('form')。checkValidity();"

于 2012-09-07T16:44:10.603 に答える