Javascript jQueryValidate停止mvc5不引人注目的验证
我有一个简单的视图,它有一个由这个视图模型支持的表单Javascript jQueryValidate停止mvc5不引人注目的验证,javascript,jquery,validation,asp.net-mvc-5,Javascript,Jquery,Validation,Asp.net Mvc 5,我有一个简单的视图,它有一个由这个视图模型支持的表单 public class MyViewModel { [Required] public string Name { get; set; } public bool ShowDescription { get; set; } public string Description { get; set; } } 当我单击“保存”时,如果名称字段为空,那么我会看到锅炉板验证消息,正如我预期的那样 <scr
public class MyViewModel
{
[Required]
public string Name { get; set; }
public bool ShowDescription { get; set; }
public string Description { get; set; }
}
当我单击“保存”时,如果名称字段为空,那么我会看到锅炉板验证消息,正如我预期的那样
<script type="text/javascript">
$("#MyForm").validate({
rules: {
"Description":{
required: "#ShowDescriptionCheckbox:checked"
}
},
messages: {
"Description": {
required: "Enter a Description"
}
},
errorElement: "span",
errorClass: "field-validation-error",
});
</script>
当我在Chrome中查看F12时,没有丢失的脚本,正如我之前所说的,各个验证程序独立工作,只是当它们都需要在同一时间显示它故障时。正确的处理方法是使用[RequiredIfTrueShowDescription]或应用于描述的类似验证属性property@StephenMuecke谢谢你的建议,看起来这会达到我想要的。然而,我很想知道正确的方法是什么,以使这两种验证方法发挥良好的作用。或者我遇到了预期的行为,需要使用建议的插件吗?问题在于jquery.validate.unobtrusive.js初始化jquery.validate.js根据表单控件中的数据val属性设置规则等,这使得添加/覆盖已添加的内容变得困难。您可以使用$.validator.addMethod和$.validator.unobtrusive.adapters.add函数来实现这一点,这正是万无一失的功能,或者如果您编写了自己的验证属性,您将要做的。使用validation属性的主要优点是,您可以随时进行客户端和服务器端验证。
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")