我正在尝试使用 parsley 的 js 自定义验证器来检查表单上的唯一电子邮件地址。但是,当我不在乎返回什么时,它并不会阻止表单提交。
ajax 请求 checkEmailExists 返回 true 或 false,具体取决于电子邮件是否存在
window.Parsley
.addValidator('uniqueUsername', {
requirementType: 'string',
validateString: function(value, requirement) {
$.ajax({
url: "checkEmailExists",
data: {username: value},
dataType: 'json',
method: 'POST',
data: { email: $( "#email" ).val() },
async: false,
success: function(data) {
return data;
}
});
},
messages: {
en: 'This email address already exists!'
}
});
<input type="text" id="email" name="email" placeholder="Email" data-parsley-uniqueUsername data-parsley-required="true" data-parsley-type="email"/>
最佳答案
您返回的 promise 必须失败或成功,true
或 false
不会成功。
最简单的可能是使用远程
验证器。
不相关,但对于像这样的幂等请求,您应该使用 GET
,而不是 POST
。
关于javascript - 带有欧芹 js 的唯一用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40348621/