部分视图中不显眼的客户端验证无法正常工作

时间:2012-05-20 00:02:09

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

我已经阅读了有关此问题的大部分帖子,但我仍然看不出有什么问题。有人可以请一脸吗?我收到一个错误“无法读取属性'不显眼的'未定义”如果我注释掉该行然后我得到“无法读取未定义的属性'选项”所以很明显我有一些引用不当但我看不到它。如果我拿出所有的验证代码弹出窗体并且工作正常,但当然没有验证。另外,我尝试用“#updateContactForm”代替“#updateDialog”并得到相同的结果。希望这是一件简单的事情,我从长时间的观察中看不出来。提前致谢!

    <div id="updateDialog" title="Update Contact"></div>
    <script type="text/javascript">
     var linkObj;
$(function () {
    $(".editLink").button();

    $("#updateDialog").dialog({
        autoOpen: false,
        width: 400,
        resizable: false,
        modal: true,
        buttons: {
            "Update": function () {
                $("#update-message").html(''); //make sure there is nothing on the message before we continue                         
                $("#updateContactForm").submit();
            },
            "Cancel": function () {
                $(this).dialog("close");
            }
        }
    });

            $(".editLink").click(function () {
        //change the title of the dialog
        linkObj = $(this);
        var dialogDiv = $("#updateDialog");
        var viewUrl = linkObj.attr('href');
        $.get(viewUrl, function (data) {
            dialogDiv.html(data);
            //validation
            var $form = $("#updateContactForm");
            $form.unbind();
            $form.data("validator", null);
            $.validator.unobtrusive.parse($("#updateDialog"));
            // Re add validation with changes
            $form.validate($form.data("unobtrusiveValidation").options);
            //open dialog
            dialogDiv.dialog("open");
        });
        return false;
    });

1 个答案:

答案 0 :(得分:2)

要检查一下,您是否正确引用了cshtml或母版页中的jquery验证脚本?。

您应首先加载脚本jquery.validate.js,然后加载jquery.validate.unobtrusive.js脚本。