-2

リモート関数へのコールバックがユーザー名または電子メールアドレスに対して行われると、返されたデータが「n」に等しい場合、メッセージが表示されるようになるはずです。

JS:

$(document).ready(function() {
    var validator = $("form").validate({
        rules: {
            username: {
                minlength: 6,
                maxlength: 12,
                remote: {
                    type: 'post',
                    url: 'register/is_username_available',
                    data: {
                        'username': function() {
                            return $('#username').val();
                        }
                    },
                    dataType: 'json',
                    success: function(data) {
                        alert(data);
                        if (data == 'y') {
                            alert('available');
                        }
                        else {
                            alert('no available');
                        }
                    }
                }
            },
            email_address: {
                email: true,
                remote: {
                    type: 'post',
                    url: 'register/is_email_available',
                    data: {
                        'email_address': function() {
                            return $("#email_address").val();
                        }
                    },
                    dataType: 'json',
                    success: function(data) {
                        alert(data);
                        if (data == 'y') {
                            alert('available');
                        }
                        else {
                            alert('no available');
                        }
                    }
                }
            }
        },
        messages: {
            username: {
                remote: 'The username is already in use'
            },
            email_address: {
                remote: 'There is already an account set up that uses that email address!'
            }
        }
    });
});​
4

1 に答える 1

2

あなたの「dataType」は正しくありません..現在、JSONを取得して使用するように指示していますが、一方で、「json」ではなく文字列または「text」/「html」を出力または期待しています

dataType を html または text に変更して、それがどうなるか見てみましょう。

json に保持したい場合は、php 側からの出力は次のようにする必要があります。

{"response":"y"}

成功したあなたのJavaScriptは次のようにする必要があります

if(data.response == "y")

于 2012-06-13T23:47:46.907 に答える