多个提交按钮,javascript

时间:2011-08-08 04:55:03

标签: java javascript forms servlets button

我有一个带有表单和两个按钮的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\"; } 
  }
}                  

2 个答案:

答案 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