jQuery UI对话框显示,但后面仍然提交没有用户交互的形式

时间:2011-01-28 15:58:27

标签: jquery jquery-ui

我遇到了一个我以前从未遇到的奇怪问题。

我有一个局部视图,其中包含调用它的页面的其他按钮,它们只是:

<button id="editorApproveBtn" name="submitBtn" value="EditorAppove">Approve</button>
<button id="editorDenyBtn" name="submitBtn" value="EditorDeny">Deny</button>

这些是对页面上其他按钮的补充,称为相同的东西。

其他按钮用于简单提交 - 以两种不同的方式保存表单内容,但这两个按钮显示jQuery对话框,但是,对话框显示正常,但表单在加载时立即提交。

这是我的对话框代码:

$('#editorApproveBtn').button().click(function () {
        $("#confirmApproveDialog").dialog({
            bgiframe: true,
            height: 200,
            modal: true,
            resizable: false,
            width: 400,
            buttons: {
                'Yes': function () {
                    $(this).submit();
                    return false
                },
                'No': function () { $(this).dialog("close"); }
            }
        });
    });

我不知道发生了什么,我以前从未见过或听说过这种行为。

是否有其他人遇到此问题或知道修复方法?或者我犯了一个错误,这是由它引起的?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

尝试将return false;添加到.click()回调函数的末尾。在某些浏览器中,按钮元素会提交页面。

像这样:

$('#editorApproveBtn').button().click(function () {
    $("#confirmApproveDialog").dialog({
        bgiframe: true,
        height: 200,
        modal: true,
        resizable: false,
        width: 400,
        buttons: {
            'Yes': function () {
                $(this).submit();
                return false
            },
            'No': function () { $(this).dialog("close"); }
        }
    });
    return false;
});