Jquery 了解$.validator.unobtrusive.adapters.addBool()方法
我想了解一些事情 从这篇博文 桥接HTML和jQuery验证:适配器 编写客户端验证程序涉及两个步骤:编写 用于jQuery验证的验证器,并编写接受 参数值,并将其转换为jQuery 验证元数据。前一个主题不在本博客的范围内 post(因为它实际上并不特定于MVC) 在上有可用的适配器集合 jQuery.validator.unobtrusive.adapters。挂断适配器 集合是适配器注册方法(add)和三个助手 可用于注册非常常见类型的适配器(addBool, addSingleVal和addMinMax) 请注意,它显示了两个步骤 但是,如果你看了这篇文章,你只需要第二步(“编写适配器”)就可以进行验证——通过添加以下代码行:Jquery 了解$.validator.unobtrusive.adapters.addBool()方法,jquery,jquery-validate,asp.net-mvc-4,custom-attributes,unobtrusive-validation,Jquery,Jquery Validate,Asp.net Mvc 4,Custom Attributes,Unobtrusive Validation,我想了解一些事情 从这篇博文 桥接HTML和jQuery验证:适配器 编写客户端验证程序涉及两个步骤:编写 用于jQuery验证的验证器,并编写接受 参数值,并将其转换为jQuery 验证元数据。前一个主题不在本博客的范围内 post(因为它实际上并不特定于MVC) 在上有可用的适配器集合 jQuery.validator.unobtrusive.adapters。挂断适配器 集合是适配器注册方法(add)和三个助手 可用于注册非常常见类型的适配器(addBool, addSingleVal和a
$.validator.unobtrusive.adapters.addBool("mandatory", "required");
我在一个新的MVC4互联网应用程序中测试了这段代码,效果很好,下面是超级简单的示例
视图模型
public class SimpleViewModel
{
[Mandatory(ErrorMessage = "You must agree to the Terms to register.")]
[Display(Name = "Terms Accepted")]
public bool IsTermsAccepted { get; set; }
}
验证属性
public class MandatoryAttribute : ValidationAttribute, IClientValidatable
{
public override bool IsValid(object value)
{
return (!(value is bool) || (bool)value);
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
ModelClientValidationRule rule = new ModelClientValidationRule();
rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName());
rule.ValidationType = "mandatory";
yield return rule;
}
}
公共类MandatoryAttribute:ValidationAttribute,IClientValidatable
{
公共覆盖布尔值有效(对象值)
{
返回(!(值为bool)|(bool)值);
}
公共IEnumerable GetClientValidationRules(ModelMetadata元数据、ControllerContext上下文)
{
ModelClientValidationRule=新的ModelClientValidationRule();
rule.ErrorMessage=FormatErrorMessage(metadata.GetDisplayName());
rule.ValidationType=“必填”;
收益率-收益率规则;
}
}
看法
@model mvcapapplication2.Models.SimpleViewModel
@{
ViewBag.Title=“”;
}
@使用(Html.BeginForm()){
@Html.ValidationSummary()
@CheckBoxFor(model=>model.IsTermsAccepted)
@Html.ValidationMessageFor(model=>model.IsTermsAccepted)
}
@节脚本{
@Scripts.Render(“~/bundles/jqueryval”)
$.validator.unobtrusive.adapters.addBool(“强制”、“必需”);
}
所以基本上我有三个问题:
除了评论中链接到的文章@BlueChippy外,我还找到了2的答案。在
@model MvcApplication2.Models.SimpleViewModel
@{
ViewBag.Title = "";
}
@using (Html.BeginForm()) {
@Html.ValidationSummary()
@Html.CheckBoxFor(model => model.IsTermsAccepted)
@Html.ValidationMessageFor(model => model.IsTermsAccepted)
<input type="submit" value="Send" />
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$.validator.unobtrusive.adapters.addBool("mandatory", "required");
</script>
}