元素0在MVC中的表单帖子上未定义

时间:2012-07-09 14:01:26

标签: jquery asp.net-mvc jquery-validate

我正在打开一个查询对话框,它在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>

任何帮助将不胜感激。什么在这里讨厌?

1 个答案:

答案 0 :(得分:-1)

它位于您mySuccess中用作OnSuccess处理程序的AjaxForm回调中,您应该调用$.validator.unobtrusive.parse方法,而不是document.ready。你不应该在partial中有一个document.ready处理程序。顺便说一句,你不应该在部分内部使用任何javascript。 JavaScript应该写在单独的文件中。部分视图应仅包含标记。