Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
剑道窗口上dropdownlist的jQuery验证_Jquery_Kendo Ui - Fatal编程技术网

剑道窗口上dropdownlist的jQuery验证

剑道窗口上dropdownlist的jQuery验证,jquery,kendo-ui,Jquery,Kendo Ui,我在使用jQuery验证验证模式KendoWindow上的Kendo小部件(尤其是dropdownlist)时遇到了一个问题,该模式KendoWindow由使用AJAX检索的表单填充。除了使用隐藏字段(dropdownlist、textarea等)的剑道小部件外,验证在所有方面都能很好地工作。我看到过许多描述和解决非常类似问题的帖子(例如),但这些方法似乎不适用于模式剑道。解决方案应该是这样的: $.validator.setDefaults({ ignore: ""}); 但这在我的情况下不

我在使用jQuery验证验证模式KendoWindow上的Kendo小部件(尤其是dropdownlist)时遇到了一个问题,该模式KendoWindow由使用AJAX检索的表单填充。除了使用隐藏字段(dropdownlist、textarea等)的剑道小部件外,验证在所有方面都能很好地工作。我看到过许多描述和解决非常类似问题的帖子(例如),但这些方法似乎不适用于模式剑道。解决方案应该是这样的:

$.validator.setDefaults({ ignore: ""});
但这在我的情况下不起作用。下面是我的部分视图中的代码,它通过ajax加载模式窗口:

    @model ProductManagement.Models.BaseModel

    <script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>

    <script type="text/javascript">        
        $(function () {
            $.validator.setDefaults({ ignore: "" });
        });
    </script>

    @using (Html.BeginForm())
    {
        @Html.ValidationSummary(true)...
@model ProductManagement.Models.BaseModel
$(函数(){
$.validator.setDefaults({ignore:});
});
@使用(Html.BeginForm())
{
@Html.ValidationSummary(true)。。。

有什么诀窍吗?任何帮助都将不胜感激!

哇,我真的花了很多时间在这方面,但我确实让它发挥了作用。答案当然非常简单。以下是要点:

要配置剑道UI弹出窗口以使用jQuery验证(MVC 4),请执行以下操作:

  • 我使用jQuery验证插件1.8.1实现了这一点。不知道如何使用版本>1.9实现这一点

  • 在_Layout.cshtml中,将以下内容添加到文档准备功能中:
    $.validator.setDefaults({ignore:});EDIT:这不正确。版本1.8.1不需要。

  • 在包含弹出窗体的局部视图上,参考jquery.validate.min.js和jquery.validate.unobtrusive.min.js

  • 在表单上,所有字段必须具有正确的命名。例如,我使用的视图模型会导致字段名称看起来像“VM\u ProductInfo.Product\u ID”、“VM\u ProductInfo.Product\u Name”等。如果任何字段的命名不一致,例如,只需“Product\u Description”(不带“VM\u ProductInfo.”前缀),验证仅部分正常工作,表单提交时尽管有错误

  • 在表单上,包括任何隐藏字段的ValidationMessageFor。例如,如果我要隐藏Product_ID字段,我仍然需要包括验证,如下所示:

    $.validator.setDefaults({ ignore: ""});
    
    @Html.HiddenFor(model=>model.Product\u ID) @Html.ValidationMessageFor(model=>model.Product\u ID)

  • 回想起来,上面的数字4和5是最让我伤心的。如果我知道检查一下这些,我就可以省下好几个小时的头痛了

    这是一个试错的解决方案。如果你知道更好的方法,请回复

    旁注:剑道文档说为Dropdownlist小部件指定一个名称是错误的。至少据我所知,它不是。通过省略.Name,表单的命名与表单的其余部分一致