确定使用了哪个提交按钮?

时间:2009-01-21 16:08:34

标签: java html http forms servlets

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

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

感谢。

4 个答案:

答案 0 :(得分:10)

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

您的请求数据中包含someName=someValueotherName=otherValue

答案 1 :(得分:8)

当然,只需为submit个按钮添加name个属性,点击的任何一个按钮都会出现在提交的变量中:

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

答案 2 :(得分:1)

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

答案 3 :(得分: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'" />