2009-01-21 71 views
4

是否可以确定使用哪个提交按钮?我有一个带有2个提交按钮的确认表单。第一个将确认订单,执行一些数据库任务,然后重定向。第二个是取消按钮,只是重定向到同一页面,而不执行任何数据库任务。确定使用哪个提交按钮?

是否有可能在servlet中,最好通过请求对象来确定使用哪个提交按钮?我宁愿不要依赖Javascript,因为这很简单,但如果唯一的可能性会采用它。

谢谢。

回答

10
<button name="someName" value="someValue" type="submit">Submit</button> 
<button name="otherName" value="otherValue" type="submit">Cancel</button> 

你必须在你的请求数据someName=someValueotherName=otherValue

+0

感谢。那种想法会是这样,但只是想我会提前问。 – 2009-01-21 16:20:54

+0

如果你已经认为会是这样,我不知道你为什么没有设置它,运行它并测试结果?好像提问你已经知道答案是浪费每个人的时间。 – abelenky 2009-01-21 19:56:49

8

当然,只要给每个submit按钮的name属性,和哪一个被点击会出现在提交的变量:

<input type="submit" name="doConfirm" value="Confirm" /> 
<input type="submit" name="doCancel" value="Cancel" /> 
1

正如其他人所说,有两个不同名称的按钮将实现您的目标。但是,在您的应用程序中依赖此功能时,需要注意一些潜在的问题。我认为它们是Internet Explorer特有的,所以如果你不需要支持旧版本的IE,你可能会忽略它。两者都涉及当用户在表单的某个元素具有焦点时点击输入时提交表单的行为。 This article使用ASP来展示问题,但事物的HTML方面是相关的。

0

当使用多个提交按钮时,我喜欢使用javascript设置一个隐藏表单字段的值,该字段描述应该发生的操作。

例如:

<input type="hidden" name="action" id="form-action" /> 
<input type="submit" value="Save" onClick="document.getElementById('form-action').value='save'" /> 
<input type="submit" value="Copy" onClick="document.getElementById('form-action').value='copy'" />