jquery ui对话框内容中的问题

时间:2011-09-19 10:50:40

标签: jquery jquery-ui jquery-ui-dialog

我的链接名称为“login”。

单击“登录”将打开jquery对话框。

Dialog有两个链接。如果单击链接,则显示与链接相关的内容。

现在我来解决我的问题。如果再次单击“登录”链接,则仅显示已更改的内容。但我只想要初始内容。

这是我的一部分代码。

$( "#login-form" ).dialog({
                autoOpen: false,
                height: 210,
                width: 360,
                modal: true,
                show: "scale",
                hide: "scale",
                buttons: {
                    "Login": function() {
                        $("#login-frm").submit()                                    
                        },
                    Cancel: function() {
                        $(this).dialog( "close" );
                    }
                }
            });

            $( "#login" ).click(function(event) {
                event.preventDefault();
                $( "#login-form" ).dialog( "open" );
            })

我该怎么做?

2 个答案:

答案 0 :(得分:1)

在点击事件中,您可以再次加载默认内容。或者,您可以在隐藏的div中保留login-form的默认内容的副本,并在对话框打开之前将其替换。

$( "#login-form" ).dialog({
                autoOpen: false,
                height: 210,
                width: 360,
                modal: true,
                show: "scale",
                hide: "scale",
                buttons: {
                    "Login": function() {
                        $("#login-frm").submit()                                    
                        },
                    Cancel: function() {
                        $(this).dialog( "close" );
                    }
                }
            });

            $( "#login" ).click(function(event) {
                event.preventDefault();
                 $( "#login-form" ).html('give the default copy of the dialog here');
                $( "#login-form" ).dialog( "open" );
            })

答案 1 :(得分:0)

将类添加到需要清除的登录表单控件中,例如"loginControls"。然后,将$( "#login" ).click()函数更改为:

 $( "#login" ).click(function(event) {
       event.preventDefault();
       $( ".loginControls" ).each(function (i) {
             this.val('');
             });
       $( "#login-form" ).dialog( "open" );
 });

请注意,如果您的登录表单不仅包含简单的文本框控件,那么您可以执行单独的类,例如"loginCheckBoxes",然后使用$(this).removeAttr('checked');进行迭代。

这使您可以灵活地使用各种类型的控件,而无需在事件处理代码中写出整个表单HTML。