12

次の検証設定を含むフォームがあります。

$('#form').validate({
            onfocusout: false,
            onkeyup: false,
            onclick: false,
            success: function (){
                $('#username').addClass('input-validation-confirmation');
            }
        });
$('#username').rules("add", {
        onfocusout: false,
        onkeyup: false,
        required: true,
        email: true,                    
        remote: {
            url: function,
            type: 'GET',
            dataType: 'json',
            traditional: true,
            data: {
                username: function () {
                    return $('#username').val();
                }
            },
            dataFilter: function (responseString) {
                var response = jQuery.parseJSON(responseString);
                currentMessage = response.Message;
                if (response.State == 0) {
                    currentMessage = currentMessage + 0;
                                return false;
                }
                return 'true';
            },
            beforeSend: function (response) {
                showLoadingIndicator($('#username'));
            },
            complete: function () {
                hideLoadingIndicator($('#username'));
            }
        }
});

これがしようとしているのは、(他のフレームワークと連携するために) 同じ検証要素を使用して、エラーと成功の両方のメソッドを表示することです。

私の問題は、リモート検証が完了する前に、ルールの成功メソッドが起動されることです。メッセージをいくつかの方法で設定しようとしましたが、検証の成功時にカスタム メッセージ パラメーターが呼び出されないようです。

リモート検証ルールとパターン検証ルールの両方を組み合わせて使用​​する場合に、成功メッセージとエラー メッセージの両方に検証エラー フィールドを使用する他の方法を知っている人はいますか?

編集:

間違ったタイミングで成功イベントを期待していたことがわかりました。検証が完了すると発生するイベントが必要です (送信されません)。そのようなイベントはありますか?

4

4 に答える 4

0
dataFilter: function(response) {
                    response = $.parseJSON(response);

                    if (response.status === 'success') return true;
                    else {
                        message = response.error.message;
                        return false;
                    }
                }
于 2019-03-04T02:39:23.407 に答える