加载部分视图到jquery-ui对话框时$ .validator.unobtrusive.parse不起作用?

时间:2015-05-24 12:01:27

标签: jquery asp.net-mvc jquery-ui asp.net-mvc-5 jquery-ui-dialog

我对登录对话框内容有部分视图。

在我的页面中我有

<input type="button" value="Open" onclick=" OpenDialog() "/>

<div id="dialog">

</div>

以下是页面上用于加载部分视图到对话框的代码:

<script type="text/javascript">

    $(document).ready(function() {

        $('#dialog').dialog({
            autoOpen: false,
            width: 400,
            height: 300,
            closeOnEscape: true,
            closeText: "Close",
            modal: true,
            resizable: false,
            title: "login",
            open: function () {
                $(this).load('@Url.Action("login", "Home")');
            }
        });
    });

    function OpenDialog() {

        var form1 = $("#dialog").removeData("validator").removeData("unobtrusiveValidation");
        $.validator.unobtrusive.parse(form1);

        $('#dialog').dialog('open');
    }

</script>

但是登录表单的客户端验证不起作用。 我的代码出了什么问题?

2 个答案:

答案 0 :(得分:3)

您必须在加载表单后运行$.validator.unobtrusive.parse(form1);。将打开的处理程序更改为

open: function () {
    var $this = $(this);
    $this.load('@Url.Action("Login", "Account")', function () {
        $.validator.unobtrusive.parse($this);
    });
}

答案 1 :(得分:0)

我将$.validator.unobtrusive.parse(selector);移至局部视图并解决了问题。