-1

我在使用 Kendo UI 的 Tabstrip 时遇到问题。我在标签条中有两个标签,我想在标签条的第一个视图中使用客户端 jquery 验证。

谷歌浏览器:https://i.stack.imgur.com/bkxAd.png

我有一个加载标签条的视图,在这里我可以渲染脚本以进行验证。

使用标签条查看:https://i.stack.imgur.com/3pguI.png

在我要进行验证的选项卡中,我无法呈现脚本。

查看并验证:https://i.stack.imgur.com/W6riW.png

即使脚本已加载到带有标签条的视图中,我也无法让客户端验证在第一个选项卡中工作,也无法在带有验证的视图中呈现验证脚本。

有人有解决此问题的建议吗?

我有一个小问题。如果服务器端验证失败,如何从控制器返回并返回选项卡视图?

我现在有:

控制器:https://i.stack.imgur.com/RRDhs.png

我返回一个 PartialView,但它填充了整个视图,而不是只返回选项卡中的视图。

4

2 回答 2

0

问题的症结在于部分事件在通过 AJAX 加载时会丢失。我们所做的(使用剑道验证)是向处理内容加载的选项卡添加一个事件:

.Events(ev =>
 {
     ev.ContentLoad("onContentLoad")
 })

然后在脚本中重新加载验证:

function onContentLoaded() {
   $("form").kendoValidator();
};

还有另一种用于 jquery 验证的技术,涉及如下代码:

function onContentLoaded() {
   // clear validation attributes
   $("form").removeData("validator");
   $("form").removeData("unobtrusiveValidation");
   // add validation attributes back
   $.validator.unobtrusive.parse("form");
};

关于你的第二个问题,如果验证失败,你会返回你的部分视图,它应该已经设置了验证属性。

于 2018-02-17T20:23:04.947 回答
0

通过删除 @section Scripts {} 解决了这个问题

仅使用 @Scripts.Render("~/bundles/jqueryval")

于 2018-02-18T10:03:52.247 回答