在文档就绪时将jQuery UI对话框附加到ASP.NET表单

Nar*_*ana 1 asp.net jquery jquery-ui jquery-ui-dialog

我有ASP.NET的jQuery UI对话框.我在对话框中包含一个复选框列表.因为它是一个"编辑页面",所以已经检查了一些复选框,因为首次加载页面时从datatbase获取数据.

当我点击链接打开对话框时,我没有问题,一切都按预期工作.但是,如果我没有单击链接以打开对话框,则在提交表单时,不会从代码隐藏中获取这些复选框值.我理解,因为当加载页面时,jQuery UI对话框将"div"附加到"form"元素之外的HTML主体.

    //I'm trying to append dialog-dept to form on document ready like this but not yet working
     $("#dialog-dept").parent().appendTo($("form:first"));
Run Code Online (Sandbox Code Playgroud)

当页面首次加载时,如何使ASP.NET页面所需的"表单"标记的jQuery UI对话框成为一部分?

因为页面上还有许多其他字段,而不仅仅是那些复选框.有时,可能不需要打开对话框来选择任何复选框.

只有当我点击链接打开对话框时,下面的代码才能正常工作.

 $(document).ready(function() {

        // Dialog Link
        $('#dialog_link_dept').click(function() {
            $('#dialog-dept').dialog('open');
            return false;
        });

        // Launch Dialog
        $('#dialog-dept').dialog({
            autoOpen: false,
            width: 700,
            modal: true,
            open: function(type, data) {
                $(this).parent().appendTo("form");
            }
        });

    });
</script>
Run Code Online (Sandbox Code Playgroud)

Nic*_*ver 5

您可以<form>在创建后立即将其移动到,即使它是autoOpen: false,如下所示:

    $('#dialog-dept').dialog({
        autoOpen: false,
        width: 700,
        modal: true
    }).parent().appendTo("form");
Run Code Online (Sandbox Code Playgroud)