0

私は1.9.0のjqueryバージョンとこの検証プラグインを使用しています:

http://docs.jquery.com/Plugins/Validation

次のように、PHP ファイルから JSON 形式のメッセージをダウンロードします。

    messages: {
        remote: function() {
            return $.ajax({
                url: 'http://localhost/My/index.php/form/validate/messages',
                type: "POST",
                }).done(function(messages) {
                    return messages;
                }
            );
         }
    }

ただし、まったく機能せず、メッセージも表示されず、ajax 呼び出しも行われません。これを手伝ってくれませんか?

4

2 に答える 2

0

このようにしてみてください:

$.ajax({
        url: 'http://localhost/My/index.php/form/validate/messages',
        type: 'POST',
        dataType: 'json',
        success: function (results) {
            //your data here in results
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
         alert("error");
        }
    });

「エラー」を表示すると、ServerSideに問題が発生します。あなたはそれをデバッグする必要があります。Firebug Network Consoleを使用して、ブラウザで結果またはNetworkConsoleを確認できます。

于 2013-02-28T22:33:48.367 に答える
0

remoteルールを使用する場合は、ドキュメントの例を参照してください。

http://docs.jquery.com/Plugins/Validation/Methods/remote#options

ルールは、remote特定のフィールドの内容をデータベースと比較するために使用されます...名前またはパスワードが既に存在するかどうかを確認するなど。エラーメッセージのリストを単にプラグインにダンプするために使用することはできません。プラグインに関する限り、1 つのルールに対して 1 つのエラー メッセージを設定するだけです。参照: http://jsfiddle.net/zga8y/

あなたがやろうとしていることの目的を本当に理解していません。通常、各ルールのエラー メッセージは一度設定され、変更されません。

特定のフィールドのメッセージを動的に変更するにはrules('add')メソッドを使用できます。メッセージをオーバーライドするためにルールに触れる必要さえありません。

$("#myinput").rules("add", {
    messages: {
        required: "Required input",
        minlength: jQuery.format("Please, at least {0} characters are necessary")
    }
});

または、次のように一部またはすべてのメッセージをオーバーライドできます。

jQuery.extend(jQuery.validator.messages, {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",
    url: "Please enter a valid URL.",
    date: "Please enter a valid date.",
    dateISO: "Please enter a valid date (ISO).",
    number: "Please enter a valid number.",
    digits: "Please enter only digits.",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
    minlength: jQuery.validator.format("Please enter at least {0} characters."),
    rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
    range: jQuery.validator.format("Please enter a value between {0} and {1}."),
    max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
    min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});
于 2013-02-28T23:39:10.580 に答える