Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQueryValidate停止mvc5不引人注目的验证_Javascript_Jquery_Validation_Asp.net Mvc 5 - Fatal编程技术网

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")