Javascript 带有欧芹js的唯一用户名
我正在尝试使用parsley的js自定义验证程序来检查表单上的唯一电子邮件地址。然而,无论我返回什么,它都不会阻止表单提交 ajax请求checkEmailExists根据电子邮件是否存在返回true或falseJavascript 带有欧芹js的唯一用户名,javascript,jquery,ajax,parsley.js,Javascript,Jquery,Ajax,Parsley.js,我正在尝试使用parsley的js自定义验证程序来检查表单上的唯一电子邮件地址。然而,无论我返回什么,它都不会阻止表单提交 ajax请求checkEmailExists根据电子邮件是否存在返回true或false window.Parsley .addValidator('uniqueUsername', { requirementType: 'string', validateString: function(value, requirement) { $.aj
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"/>
window.Parsley
.addValidator('uniqueUsername'{
requirementType:'字符串',
validateString:功能(值、需求){
$.ajax({
url:“checkEmailExists”,
数据:{username:value},
数据类型:“json”,
方法:“POST”,
数据:{email:$(“#email”).val()},
async:false,
成功:功能(数据){
返回数据;
}
});
},
信息:{
en:“此电子邮件地址已存在!”
}
});
您返回的承诺必须失败或成功,而不是通过true
或false
成功
最简单的方法可能是使用远程
验证器
不相关,但对于这样的幂等请求,应该使用
GET
,而不是POST
返回的承诺必须失败或成功,而不是使用true
或false
成功
最简单的方法可能是使用远程
验证器
不相关,但对于像这样的幂等请求,您应该使用
GET
,而不是POST
,,正如Marc所说,您的承诺必须失败才能成功,而且您的验证器名称不能有大写字母或特殊字符,所以请尝试以下操作:
// uniqueUsername validator
window.Parsley.addValidator('uniqueusername', {
validateString: function (value, requirement) {
xhr = $.ajax({
url: "users_list_ajax.php",
dataType: 'json',
method: 'GET',
data: {
action: 'checkUserExists',
username: value
}
});
return xhr.then(function (data) {
console.log((data.isUnique == 0));
if (data.isUnique == 0) {
return true;
} else {
return $.Deferred().reject();
}
});
},
messages: {
en: 'Username already exists!',
ar: 'إسم المستخدم موجود مسبقا'
},
priority: 32
});
正如Marc所说,您的承诺必须失败才能成功,而且您的验证器名称不能有大写字母或特殊字符,因此请尝试以下方式:
// uniqueUsername validator
window.Parsley.addValidator('uniqueusername', {
validateString: function (value, requirement) {
xhr = $.ajax({
url: "users_list_ajax.php",
dataType: 'json',
method: 'GET',
data: {
action: 'checkUserExists',
username: value
}
});
return xhr.then(function (data) {
console.log((data.isUnique == 0));
if (data.isUnique == 0) {
return true;
} else {
return $.Deferred().reject();
}
});
},
messages: {
en: 'Username already exists!',
ar: 'إسم المستخدم موجود مسبقا'
},
priority: 32
});
先生,我需要知道欧芹js的最新更新是否也适用于此?我被困在这里了能看看这个吗?谢谢是的,它应该与欧芹新版本一起使用。请确保您的.php页面被正确调用,并且没有返回任何无关的HTTP错误。先生,我需要知道parsley js的新更新是否也可以处理这个问题?我被困在这里了能看看这个吗?谢谢是的,它应该与欧芹新版本一起使用。只需确保正确调用了.php页面,并且没有返回任何不相关的HTTP错误。