确定使用了哪个提交按钮?
Posted
技术标签:
【中文标题】确定使用了哪个提交按钮?【英文标题】:Determining which submit button was used? 【发布时间】:2010-10-02 17:27:06 【问题描述】:是否可以我有一个带有 2 个提交按钮的确认表。第一个将确认订单,执行一些数据库任务,然后重定向。第二个是取消按钮,只会重定向到同一页面,而不执行任何数据库任务。
是否可以在 servlet 中(最好通过请求对象)我不想依赖 javascript,因为这很简单,但如果唯一的可能,我会求助于它。
谢谢。
【问题讨论】:
【参考方案1】:<button name="someName" value="someValue" type="submit">Submit</button>
<button name="otherName" value="otherValue" type="submit">Cancel</button>
您的请求数据中将包含 someName=someValue
或 otherName=otherValue
【讨论】:
谢谢。有点想是这样,但只是想我会提前问。 如果您已经认为会是这样,我不知道您为什么不设置、运行它并测试结果?好像问一个你可能已经知道答案的问题是在浪费大家的时间。 我不认为希望有一种更清洁的做事方式是一种浪费。【参考方案2】:当然,只要给你的每个submit
按钮一个name
属性,无论哪个被点击都会出现在提交的变量中:
<input type="submit" name="doConfirm" value="Confirm" />
<input type="submit" name="doCancel" value="Cancel" />
【讨论】:
【参考方案3】:正如其他人所提到的,拥有两个不同名称的按钮将实现您的目标。但是,在您的应用程序中依赖它时,需要注意一些潜在的问题。我认为它们是特定于 Internet Explorer 的,因此如果您不需要支持旧版本的 IE,您可以忽略。两者都涉及当表单元素之一具有焦点时用户按 Enter 键时提交的表单的行为。 This article 使用 ASP 来演示问题,但 html 方面是相关的。
【讨论】:
【参考方案4】:当使用多个提交按钮时,我喜欢使用 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'" />
【讨论】:
以上是关于确定使用了哪个提交按钮?的主要内容,如果未能解决你的问题,请参考以下文章