欧芹远程此值似乎无效

时间:2014-06-24 21:53:01

标签: javascript jquery parsley.js

我觉得我已经尝试了所有选项,但没有运气

我似乎无法获得正确的响应,这将允许我使用带有Parsley的ajax验证单个输入字段(用户名)

以下是我试过的三次尝试,没有任何运气:

1次尝试

HTML:

            <input type="email" class="form-control" id="txt_username" name="username"
               data-parsley-remote-validator="remote-email"
               data-parsley-trigger="change"
               data-parsley-remote-validator="reverse"
               data-parsley-remote="/User/user_exists">

Javascript:

window.ParsleyExtend.asyncValidators['remote-email'] = function (xhr) { return xhr.status === 404; };

testet json回应:

print 404;
print 200;
print json_encode(404);
print json_encode("404");
print json_encode(200);
print json_encode("200");

2。尝试

Login.js:

    jQuery(document).ready(function()
{
    $('#form_login').parsley();

    $('[name="username"]').parsley()
        .addAsyncValidator('remote-email', function (xhr) {
            return 404 === xhr.status;
        }, '/User/user_exists',
        { "type": "POST", "dataType": "jsonp", "data": { 'request': 'ajax' } }
    );
});

HTML:

            <input type="email" class="form-control" id="txt_username" name="username"
               data-parsley-remote-validator="remote-email"
               data-parsley-trigger="change">

第一次尝试给了我最好的结果,但无论我做了什么总是说:This value seems to be invalid.

任何人都可以指出我正确的方向! ?

1 个答案:

答案 0 :(得分:0)

如果要更改默认消息,请在输入中添加属性:

<input type="email" class="form-control" id="txt_username" name="username" data-parsley-remote data-parsley-remote-message = 'your message' data-parsley-remote-validator="remote-email" data-parsley-trigger="change">

在网址&#39; / User / user_exists&#39;你需要回答这样的事情:

// PHP code
if($_POST['request'] == 'ajax'){
    header("HTTP/1.0 200");// Right
}
else{
    header("HTTP/1.0 404"); // Wrong
}

您需要检查此行:

return 200 === xhr.status;