gpt4 book ai didi

jquery 客户端验证在 MVC3 部分 View 中不起作用

转载 作者:行者123 更新时间:2023-12-03 21:48:50 25 4
gpt4 key购买 nike

我似乎无法使用以下部分 View 进行客户端验证工作。该 View 位于父 View 的 divTSettings div 内。从 stackoverflow 和其他网站尝试了很多东西,似乎没有任何效果。有任何想法吗?

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>


@using (Ajax.BeginForm("CreateT", "TAdmin", null,
new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divTSettings"},
new { id = "CreateTForm" }))
{
<div>
<label>Name:</label>
<input type="text" name="tName" id="tName"/>
@Html.ValidationMessage("tName")
<input type="submit" value="Submit"/>
</div>
}

<script type="text/javascript">
$(function() {
$('#CreateTForm').validate({
rules: {
tName: {
required: true
}
},
messages: {
tName: {
required: 'Name required'
}
}
});
$("#CreateTForm").removeData("validator");
$("#CreateTForm").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("#CreateTForm");
});
</script>

最佳答案

Any ideas?

是的,您应该做的第一件事就是从部分 View 中删除所有这些 <script> 标签。部分 View 不应包含任何脚本。部分 View 应仅包含标记。我已经重复了很多次,但仍然看到人们把脚本放在那里。脚本应该在您的布局或渲染部分的主视图中注册,可能是通过覆盖布局中注册的一些脚本部分,以便所有脚本都插入到 HTML 文档的末尾,就在结束 </body> 标记之前。那就是他们所属的地方。

好的,现在来解决实际问题:不引人注目的验证无法在动态添加元素到 DOM 的情况下开箱即用 - 例如向服务器发送 AJAX 请求,该请求返回部分 View ,这然后将部分 View 注入(inject)到 DOM 中。

为了使其工作,您需要使用不显眼的验证框架注册这些新添加的元素。为此,您需要对新添加的元素调用 $.validator.unobtrusive.parse:

$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");

您应该将此代码放入 AJAX 成功处理程序中,该处理程序将部分注入(inject)到 DOM 中。注入(inject)新元素后,只需调用此函数即可。

如果您不是使用 jQuery 手动编写 AJAX 请求($.ajax、$.post 等),而是依赖一些 Ajax.BeginForm 和 Ajax.ActionLink 帮助程序来完成这项工作,您将需要订阅 AjaxOptions 中的 OnSuccess 回调并将此代码放入其中。

关于jquery 客户端验证在 MVC3 部分 View 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14134949/

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