我有一个带有表单和两个按钮的servlet。一个是Submit按钮,另一个是Delete按钮。默认操作是Updater.do,但是当我单击“删除”按钮时,我有一个将操作更改为Deleter.do的功能。这很好用。我现在遇到的问题是,当我输入确认对话框时,如果用户点击“确定”,那么它会继续发送到Deleter.do,正如我想的那样。但是,当他们点击“取消”时,而不是只停留在页面上,它似乎会转到“Updater.do”。我该如何解决这个问题?我尝试删除默认操作并同时提交和删除调用changeAction,但这不起作用。这是javascript chgAction。
function chgAction(action_name) {
if (action_name=="Delete") {
var answer = confirm("Are you sure you want to delete this Person? This action cannot be undone.")
if (answer) { document.forms[0].action = \"Deleter.do\"; }
}
}
答案 0 :(得分:1)
尝试在“取消”部分添加return false
:
function chgAction(action_name) {
if (action_name=="Delete") {
var answer = confirm("Are you sure you want to delete this Person? This action cannot be undone.")
if (answer) {
document.forms[0].action = \"Deleter.do\";
}
else {
return false; //ADDED
}
}
}
答案 1 :(得分:0)
如果提交和删除都是提交按钮,只需给它们不同的名称。单击任何一个按钮的名称将随请求一起发送,以便服务器对其进行排序。
调用确认对话框时,您必须从侦听器返回false,否则表单仍会提交:
<form onsubmit="return chgAction(...);"
和 chgAction 必须按照Nivas的建议返回false
。