5

データがリモートメソッドに送信される前、およびリモートメソッドから結果が返された後、クライアントでMVC3の目立たないリモート検証にフックする方法はありますか?

送信ボタンがクリックされた場合にのみ検証を実行するようにリモートバリデーターに指示しようとしています。通常の動作は、キーを押したり、ぼかしたりするなど、数回検証することです。問題の検証方法ではべき等でない操作を呼び出す必要があるため、これは適切ではありません。ユーザーが送信ボタンをクリックした場合にのみメソッドが呼び出されるようにする必要があります。

beforeイベントにフックできる場合は、送信ボタンがクリックされているかどうかを示すフラグをフォームに設定できます。ただし、リモートメソッドが検証結果を返した後、このフラグをリセットする必要があります。

他に何か提案はありますか?これは、ASP.NETメンバーシッププロバイダーのMembership.ValidateUser(string username, string password)方法を使用してパスワードを検証するためのものです。このメソッドは、無効なパスワードが送信されるたびにインクリメントさFailedPasswordAttemtCountれるため、ぼかしやキー押下などのときに実行したくありません。

4

2 に答える 2

7

現在のページのデフォルトの検証オプションを上書きできます。

$.validator.setDefaults({
    onkeyup: false,
    onfocusout: false,
    onsubmit: true
});
于 2012-05-02T13:03:30.113 に答える
0

上記の解決策は私にとってこれを解決しませんでした。どういうわけか、バリデーターの設定が設定されていませんでした。それで、私は以下を実装しました、そしてそれは働きました:

$(function () {
    var settings = $.data($('form')[0], 'validator').settings;
    settings.onkeyup = false;
});
于 2016-09-15T13:23:06.283 に答える