我遇到了一个我以前从未遇到的奇怪问题。
我有一个局部视图,其中包含调用它的页面的其他按钮,它们只是:
<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"); }
}
});
});
我不知道发生了什么,我以前从未见过或听说过这种行为。
是否有其他人遇到此问题或知道修复方法?或者我犯了一个错误,这是由它引起的?
提前感谢您的帮助。
答案 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;
});