我觉得我已经尝试了所有选项,但没有运气
我似乎无法获得正确的响应,这将允许我使用带有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.
任何人都可以指出我正确的方向! ?
答案 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;