jQuery UI对话框(版本1.10.4)只打开一次

时间:2014-02-15 14:41:36

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

我正在我的网页中实现jQuery UI(版本1.10.4),我在这里有一个非常简单的代码。问题是,我不知道为什么只打开一次。有人可以点灯吗?

主要代码:

<button class="subscribe">Subscribe</button>

    <div id="login-form" title="Sign In"> 
                        <p class="validateTips">All form fields are required.</p>
                        <form>
                        <fieldset>
                            <label for="username">Username</label>
                            <input type="text" name="username" id="username" class="text ui-widget-content ui-corner-all" />
                            <label for="password">Password</label>
                            <input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" />
                        </fieldset>
                        </form>
                    </div>

jQuery代码:

$(document).ready(function () {
    $( "#login-form" ).dialog({
            autoOpen: false,
            height: 300,
            width: 350,
            modal: true,
            buttons: {
                "Login": function() {
                    //php code

                 },
                Cancel: function() {
                    $( this ).dialog( "close" );
                }
            },
            close: function() {
                allFields.val( "" ).removeClass( "ui-state-error" );
            }
            });


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

1 个答案:

答案 0 :(得分:2)

这是因为allFields未定义。它抛出一个错误。行:

allFields.val( "" ).removeClass( "ui-state-error" );

注释掉,它运作正常。

小提琴:http://jsfiddle.net/z4Kdw/1/

我向小提琴添加$('input').val("").removeClass("ui-state-error");以清除字段而不会抛出错误。