jQuery UI对话框问题

jQuery UI dialog issue

本文关键字:问题 对话框 UI jQuery      更新时间:2024-02-03

我正在尝试创建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>  

萤火虫说:

类型错误:$("#dialog:ui dialog")。dialog不是函数

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

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

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

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

休息吧,请随意玩demo&希望对:) 事业有所帮助

脚本

      <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" );
                }
            },
});
​

如果脚本文件加载成功,请检查Firebug/DevTools。如果是,请在控制台(Firebug、DevTools)中键入这一行,或者更好,将这一行放在执行其他代码的地方:

console.debug(jQuery.ui)

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

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

destroy调用应该位于创建对话框时已经使用的元素上,而不是位于内容周围的.ui-dialog容器上:

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

由于当前代码正在抛出异常,因此永远不会调用本应创建对话框的后续行。

如果您想销毁可能已经打开的每个对话框,jQueryUI可以方便地在每个内容div上放置一个.ui-dialog-content类:

$('.ui-dialog-content').dialog('destroy');