自定义数据验证不起作用
Custom data validation not working
我需要调用 ajax 方法对密码字段进行自定义数据验证。这是我的代码 -
.cshtml
<div class="form-group" style="margin-top: 20px">
@Html.LabelFor(m => m.Password):
@Html.PasswordFor(m => m.Password,
new
{
autofocus = "autofocus",
autocomplete = "off",
@class = "form-control",
value = "",
data_val_newpassword = "Password does not meet requirements"
})
@Html.ValidationMessageFor(m => m.Password)
</div>
.js
$.validator.addMethod("newpassword", function (value, element) {
var isValid = false;
$.ajax({
url: ccm.resolveUrl('/Home/ValidateNewPassword'),
data: { password: value },
async: false
}).done(function (data) {
isValid = data.Success;
});
return isValid;
});
$.validator.unobtrusive.adapters.addSingleVal("newpassword");
HomeController.cs
public JsonResult ValidateNewPassword(string password)
{
// Validate password against all password requirements.
var isValid = _passwordValidationService.IsValidPassword(password);
return Json(new { Success = isValid }, JsonRequestBehavior.AllowGet);
}
但是,jquery 方法没有被调用,因此没有 ajax 请求被触发。
请指导。
谢谢!
我通过替换解决了问题
$.validator.unobtrusive.adapters.addSingleVal("newpassword");
有了这个 -
$.validator.unobtrusive.adapters.addBool("newpassword");
我需要调用 ajax 方法对密码字段进行自定义数据验证。这是我的代码 -
.cshtml
<div class="form-group" style="margin-top: 20px">
@Html.LabelFor(m => m.Password):
@Html.PasswordFor(m => m.Password,
new
{
autofocus = "autofocus",
autocomplete = "off",
@class = "form-control",
value = "",
data_val_newpassword = "Password does not meet requirements"
})
@Html.ValidationMessageFor(m => m.Password)
</div>
.js
$.validator.addMethod("newpassword", function (value, element) {
var isValid = false;
$.ajax({
url: ccm.resolveUrl('/Home/ValidateNewPassword'),
data: { password: value },
async: false
}).done(function (data) {
isValid = data.Success;
});
return isValid;
});
$.validator.unobtrusive.adapters.addSingleVal("newpassword");
HomeController.cs
public JsonResult ValidateNewPassword(string password)
{
// Validate password against all password requirements.
var isValid = _passwordValidationService.IsValidPassword(password);
return Json(new { Success = isValid }, JsonRequestBehavior.AllowGet);
}
但是,jquery 方法没有被调用,因此没有 ajax 请求被触发。
请指导。
谢谢!
我通过替换解决了问题
$.validator.unobtrusive.adapters.addSingleVal("newpassword");
有了这个 -
$.validator.unobtrusive.adapters.addBool("newpassword");