是否可以确定使用了哪个提交按钮?我有一个带有2个提交按钮的确认表。第一个将确认订单,执行一些数据库任务,然后重定向。第二个是取消按钮,它将只重定向到同一页面,而不执行任何数据库任务。
是否可以在servlet中,最好是通过请求对象,来确定使用了哪个提交按钮?我宁愿不依赖于Javascript,因为这很简单,但如果唯一的可能性就会诉诸它。
感谢。
答案 0 :(得分:10)
<button name="someName" value="someValue" type="submit">Submit</button>
<button name="otherName" value="otherValue" type="submit">Cancel</button>
您的请求数据中包含someName=someValue
或otherName=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'" />