我正在打开一个查询对话框,它在MVC应用程序中有两个查询选项卡。两个标签加载不同的部分页面。我在一个标签中形成。表单验证工作正常。我收到错误$ element [0]在jquery.validate.js @ line 806 中未定义,表格中没有验证错误。我无法理解什么是问题。下面是代码:
Include references in _Layout.cshtml:
<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.20.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
Partial view which open in one of tab:
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
@using (Ajax.BeginForm("UpdateMediaCode", "MediaCode", null,
new AjaxOptions
{
UpdateTargetId = "myMsg",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST",
OnSuccess = "mySuccess"
}, new { @id = "myFormId" }
))
{
@Html.ValidationSummary(true)
}
<script type="text/javascript">
$(document).ready(function () {
$.validator.unobtrusive.parse($('#myFormId));
}
</script>
任何帮助将不胜感激。什么在这里讨厌?
答案 0 :(得分:-1)
它位于您mySuccess
中用作OnSuccess
处理程序的AjaxForm
回调中,您应该调用$.validator.unobtrusive.parse
方法,而不是document.ready
。你不应该在partial中有一个document.ready处理程序。顺便说一句,你不应该在部分内部使用任何javascript。 JavaScript应该写在单独的文件中。部分视图应仅包含标记。