0

我正在尝试创建 jquery 对话框,但没有用:(这是我的 jQuery 代码:

$(document).ready(function() {
    createDialog();

});
function createDialog() {

    $("#dialog:ui-dialog").dialog("destroy");
    $("#dialog-form").dialog(
            {
                autoOpen : false,
                height : 475,
                width : 350,
                modal : true,
                buttons : {
                    "submit" : function() {

                        var bValid = true;
                        allFields.removeClass("ui-state-error");
                        postText();
                            $(this).dialog("close");
                        }
                    },
                    cancel : function() {
                        $(this).dialog("close");
                    }
                },
                close : function() {
                    allFields.val("").removeClass("ui-state-error");
                }
            });

    $(".add-org").click(function() {

            $("#dialog-form").dialog("open");
    });
}

这是html代码:

<link href="<c:url value="/resources/styles/jquery-ui-1.8.21.custom.css"/>"
    rel="stylesheet" type="text/css">
<script type="text/javascript"
    src="<c:url value='/resources/js/jquery-1.7.js'/>"></script>
<script type="text/javascript"
    src="<c:url value='/resources/js/jquery-ui-1.8.21.custom.min.js'/>"></script>
    <script type="text/javascript"
    src="<c:url value='/resources/js/myScript.js'/>"></script>

    <a href="javascript:void(0)" class="add-org">New </a>

<div id="dialog-form" title="Add New ">
    <p class="validateTips">All form fields are required.</p>
    <form>
    ..................
    </form>
</div>  

萤火虫 说:

TypeError: $("#dialog:ui-dialog").dialog 不是函数

$("#dialog:ui-dialog").dialog("destroy");

在我的页面上,我看到了表单中的所有字段。那么我的问题是什么?

4

3 回答 3

3

试试这个:工作演示 http://jsfiddle.net/kEZkh/

不确定您的源路径是否正确,请包含以下脚本。

休息,请随意玩演示并希望它有助于事业:)

脚本

      <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/themes/base/jquery-ui.css">


      <link rel="stylesheet" type="text/css" href="http://static.jquery.com/ui/css/demo-docs-theme/ui.theme.css">

      <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
      <script type="text/javascript" src="http://code.jquery.com/ui/1.8.18/jquery-ui.min.js"></script>

代码

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

$("#dialog-form").dialog({
            modal: true,
            autoOpen: false,
            height: 255,
            width: 300,
            buttons: {
                "Retrieve": function() {
                    document.forms["forgotform"].submit();
                },
                Cancel: function() {
                    $( this ).dialog( "close" );
                }
            },
});
​
于 2012-07-25T09:23:50.040 回答
2

如果脚本文件已成功加载,请检查 Firebug/DevTools。如果是,请在控制台(Firebug、DevTools)或更好的控制台中输入,将该行放在执行其他代码的位置:

console.debug(jQuery.ui)

如果显示undefined,则 jQuery UI 尚未加载(还)。在加载所有内容之前检查您的代码是否运行,将其放入 jQuery 的$(document).ready();. 如果它是一个对象,请检查它并检查dialog属性。

如果您在jqueryui.com上配置了自定义构建,请仔细检查您是否包含对话框小部件。

于 2012-07-25T09:22:22.213 回答
0

destroy调用应该与您在创建对话框时使用的元素相同,而不是.ui-dialog包装在您的内容周围的容器:

$("#dialog-form").dialog('destroy');

由于您当前的代码正在引发异常,因此应该创建对话框的后续行永远不会被调用。

如果你想销毁每个可能已经打开的对话框,jQuery UI 可以轻松地.ui-dialog-content在每个内容 div 上放置一个类:

$('.ui-dialog-content').dialog('destroy');
于 2012-07-25T09:25:41.837 回答