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

时间:2010-09-17 13:59:54

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

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

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

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

如何在页面首次加载时将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>

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

我想这种方式形成模态对话框:

$(“#dialog-dept”)。dialog({height:300,width:250,modal:true,appendTo:“form”,title:“Title”,show:{effect:“fade”,duration :500},隐藏:{效果:“弃牌”,持续时间:500}});

并为我工作