错误:在初始化之前无法调用对话框上的方法;试图调用方法'关闭' Jquery onclick按钮

时间:2014-10-18 16:30:19

标签: jquery jquery-ui-dialog

我的要求是打开拨号点击取消按钮。一旦取消预订'单击,表单应该提交。

使用以下代码,我收到错误: 错误:在初始化之前无法调用对话框上的方法;试图调用方法'关闭'

我的div为:

<div id="dialog" title="Confirmation Required" style="display:none">
            Are you sure about this?
</div>

按钮为:

<input type="submit" id="btnCxlJob" name="btnCxlJob" value="Cancel" />

在document.Ready中:

$("#dialog").dialog({
        resizable: false,
        height: 140,
        modal: true,
        autoOpen: false,
        buttons: {
            'Cancel the Reservation': function() {

                $(this).dialog('close');
                document.JobConf.submit;

            },
            'Cancel': function() {
               $(this).dialog('close');
            }
        }
    });
    $("#btnCxlJob").click(function() {
        var theDialog = $("#dialog").dialog();
        alert("clicked!");
        theDialog.dialog("open");

    });

虽然我尝试了其他帖子的建议,但是无法摆脱这个错误。非常感谢任何帮助。谢谢

2 个答案:

答案 0 :(得分:0)

这是一个版本问题。使用jqueryui 1.9.2和jquery 1.9.1,你没有问题。如果你使用两者的最新版本,它会更好。

在我的测试中使用

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>

答案 1 :(得分:0)

您必须阻止提交表单的提交按钮。将事件参数e添加到onClick中的函数,并在其上使用preventDefault

$("#btnCxlJob").click(function(e) {
    var theDialog = $("#dialog").dialog();
    alert("clicked!");
    theDialog.dialog("open");
    e.preventDefault();
});

document.JobConf.submit;替换为$("#<id of the form>").submit();

将其与分配给表单的ID一起使用。如果是JobConf,则代码为$("#JobConf").submit();