gpt4 book ai didi

Kendo 窗口上下拉列表的 jQuery 验证

转载 作者:行者123 更新时间:2023-12-01 01:15:54 24 4
gpt4 key购买 nike

我在使用 jQuery 验证来验证模式 KendoWindow 上的 Kendo 小部件(特别是下拉列表)时遇到问题,该窗口填充了使用 AJAX 检索的表单。验证对于除使用隐藏字段(下拉列表、文本区域等)的 Kendo 小部件之外的所有内容都非常有效。我见过很多帖子(例如 herehere )描述和解决非常相似的问题,但这些方法确实似乎不适用于模态 KendoWindow。解决方案应该是这样的:

$.validator.setDefaults({ ignore: ""});

但它不适用于我的情况。这是我的部分 View 中的代码,它通过 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)...

这样做有什么技巧吗?任何帮助将不胜感激!

最佳答案

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

配置 Kendo UI 弹出窗口以使用 jQuery 验证 (MVC 4):

  1. 我使用 jQuery 验证插件 1.8.1 来完成此工作。不确定如何使用 >1.9 版本执行此操作。

  2. 在_Layout.cshtml中,将以下内容添加到文档就绪函数中:
    $.validator.setDefaults({ 忽略: ""}); 编辑:这是不正确的。 1.8.1 版本不需要。

  3. 在包含弹出表单的部分 View 上,引用 jquery.validate.min.js 和 jquery.validate.unobtrusive.min.js

  4. 表单上的所有字段都必须具有正确的命名。例如,我使用的 View 模型导致字段名称看起来像“VM_ProductInfo.Product_ID”、“VM_ProductInfo.Product_Name”等。如果任何字段的命名不一致,例如只是“Product_Description”(没有“VM_ProductInfo.Product_Name”)。 "前缀),验证仅部分正常工作,尽管存在错误,但表单仍会提交。

  5. 在表单上,​​为任何隐藏字段包含 ValidationMessageFor。例如,如果我要隐藏 Product_ID 字段,我仍然需要包含验证,如下所示:

    @Html.HiddenFor(模型 => model.Product_ID)@Html.ValidationMessageFor(model => model.Product_ID)

回想起来,上面的第4和第5点是让我最悲伤的。如果我知道要检查这些,我就可以节省很多时间。

这是一个反复试验的解决方案。如果您知道更好的方法请回复。

旁注:Kendo 文档指出,为 Dropdownlist 小部件指定名称是 mandatory 。至少据我所知并非如此。通过省略 .Name,表单将使用与表单其余部分一致的命名进行构建。

关于Kendo 窗口上下拉列表的 jQuery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16233127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com