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

4
有可能确定使用了哪个提交按钮吗?我有一个确认表单,其中有两个提交按钮。第一个将确认订单,执行一些数据库任务,然后重定向。第二个是取消按钮,将重定向到同一页,而不执行任何数据库任务。
在servlet中,是否可以通过请求对象确定使用了哪个提交按钮?我希望不依赖于JavaScript,因为它很简单,但如果没有其他可能性,我会采用它。
谢谢。
4个回答

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

你的请求数据中将会有 someName=someValue 或者 otherName=otherValue


谢谢。我也觉得会是这样,但还是想提前问一下。 - Chris Serra
如果你已经认为会是这种情况,我不知道为什么你没有设置它、运行它并测试结果?询问一个你可能已经知道答案的问题似乎浪费了大家的时间。 - abelenky
我认为希望有更简洁的方法并不是一种浪费。 - Kev

8
当然,只需要给每个 submit 按钮添加一个 name 属性即可,被点击的按钮会出现在提交的变量中:
<input type="submit" name="doConfirm" value="Confirm"  />
<input type="submit" name="doCancel"  value="Cancel"  />

1

正如其他人提到的那样,使用两个具有不同名称的按钮将实现您的目标。但是,在依赖此功能时,需要注意一些潜在问题。我认为它们是特定于Internet Explorer的,因此,如果您不需要支持旧版本的IE,则可以忽略它们。这两个问题都涉及用户在表单元素获得焦点时按下回车键时提交表单的行为。本文使用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'" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接