多个提交按钮,javascript
我有一个带有表单和两个按钮的servlet。一个是提交按钮,另一个是删除按钮。默认操作是Updater.do,但当我单击Delete按钮时,我有一个函数将该操作更改为Deleter.do。这个很好用。我现在遇到的问题是,当我进入确认对话框时,如果用户单击“确定”,那么它确实会转到Deleter.do,正如我所希望的那样。但是,当他们单击“取消”时,它似乎会转到“Updater.do”,而不是停留在页面上。我该如何补救?我尝试删除默认操作并同时使用Submit和Delete call changeAction,但没有成功。下面是javascript chgAction多个提交按钮,javascript,java,javascript,forms,servlets,button,Java,Javascript,Forms,Servlets,Button,我有一个带有表单和两个按钮的servlet。一个是提交按钮,另一个是删除按钮。默认操作是Updater.do,但当我单击Delete按钮时,我有一个函数将该操作更改为Deleter.do。这个很好用。我现在遇到的问题是,当我进入确认对话框时,如果用户单击“确定”,那么它确实会转到Deleter.do,正如我所希望的那样。但是,当他们单击“取消”时,它似乎会转到“Updater.do”,而不是停留在页面上。我该如何补救?我尝试删除默认操作并同时使用Submit和Delete call change
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\"; }
}
}
尝试向“取消”部分添加
返回false
:
如果submit和delete都是submit按钮,只需为它们指定不同的名称即可。无论单击哪个按钮,其名称都将与请求一起发送,以便服务器可以对其进行排序 调用确认对话框时,必须从侦听器返回false,否则表单仍将提交:
<form onsubmit="return chgAction(...);"
您是否尝试过使用else子句清除“Cancel”上的操作?我尝试过将该操作设置为“”。问题是,有表单数据,我不希望页面重新加载如果单击取消,我希望什么也不发生。单击“取消”时,通过执行“取消”操作,页面将被重新加载,并表示此url不支持HTTP方法post。因此,我必须更改HTTP方法和else子句中的操作,这意味着每次单击OK或submit按钮时,我也必须更改方法。即使这样,表格数据也会被清除。嗨,你能把表格代码也贴出来吗?我想我已经猜到了你的问题,只是想通过查看你的表单来确认。out.println(“”)我刚刚添加了onsubmit部分。我认为问题在于onsubmit应该返回chgaaction(“某物”)。但是,我不知道“某物”应该是什么我应该在onsubmit中chgaAction()的括号内放什么?好的,我已经解决了问题,但没有解决方案。我确实需要在onsubmit中调用chgaAction(),但我不知道传递给此方法的是什么。您说您已经让侦听器正常工作了,所以我假设您正在从“删除”按钮传递“删除”,以及从“更新”传递任何其他信息按钮。我没有意识到我可以将单击按钮的名称与请求一起发送-谢谢这似乎不起作用,尽管我不知道为什么它不起作用。Onsubmit必须返回chgaAction,但我不知道应该向函数传递什么。
<form onsubmit="return chgAction(...);"