jquery自定义验证(addMethod)返回false
在这件事上我的头撞到了墙上,所以我很感激在这件事上的任何帮助。我创建了一些验证方法来指向javascript函数,如果电子邮件不在/当前在我们的成员表中,该函数将返回true/false。javascript函数(CheckEmail)工作得很好,控制器操作工作得很好,但是不管CheckEmail返回的是true还是false,它总是计算为无效字段。请帮助: 验证jquery自定义验证(addMethod)返回false,jquery,asp.net-mvc-3,jquery-validate,Jquery,Asp.net Mvc 3,Jquery Validate,在这件事上我的头撞到了墙上,所以我很感激在这件事上的任何帮助。我创建了一些验证方法来指向javascript函数,如果电子邮件不在/当前在我们的成员表中,该函数将返回true/false。javascript函数(CheckEmail)工作得很好,控制器操作工作得很好,但是不管CheckEmail返回的是true还是false,它总是计算为无效字段。请帮助: 验证 $.validator.addMethod("emailCheck", function (value, element) {
$.validator.addMethod("emailCheck", function (value, element) {
return this.optional(element) || CheckEmail(value);
}, "This email is already registered");
Validator = $("#RegForm").validate({
rules: {
Email: {
required: true,
email: true,
emailCheck: true
},
Password: {
required: true,
minlength: 6
},
ConfirmPassword: {
required: true,
equalTo: "#Password"
},
"UserObj.FirstName": {
required: true,
minlength: 2
},
"UserObj.LastName": {
required: true,
minlength: 2
}
}
});
javascript方法:
function CheckEmail(email) {
$.getJSON("/account/jsonCheckEmail", { EmailToCheck: email }, function (data) {
if (data.status = "OK") {
if (data.msg = "True") {
return true;
}
else {
return false;
}
}
});
}
控制器操作:
public JsonNetResult jsonCheckEmail(string EmailToCheck)
{
JsonNetResult jsonEmail = new JsonNetResult();
jsonEmail.Formatting = Formatting.Indented;
try
{
string user = Membership.GetUserNameByEmail(EmailToCheck);
if (string.IsNullOrWhiteSpace(user))
{
jsonEmail.Data = new jsonResponseObj("True", "True");
}
else {
jsonEmail.Data = new jsonResponseObj("False","False");
}
}
catch (Exception ex)
{
jsonEmail.Data = new jsonResponseObj(ex);
//jsonEmail.Data = new jsonResponseObj("False", "False");
}
return jsonEmail;
}
HTML:
@LabelFor(m=>m.Email)
@Html.TextBoxFor(m=>m.Email)
@Html.ValidationMessageFor(m=>m.Email)
您可以利用插件的功能,而不是编写自己的jQuery处理程序:
Email: {
required: true,
email: true,
remote: "/account/jsonCheckEmail"
},
@用户…可能与“返回此.可选(元素)”相关。尝试删除该代码,看看会发生什么
Email: {
required: true,
email: true,
remote: "/account/jsonCheckEmail"
},