代码之家  ›  专栏  ›  技术社区  ›  Chris Serra

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

  •  4
  • Chris Serra  · 技术社区  · 16 年前

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

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

    谢谢。

    4 回复  |  直到 16 年前
        1
  •  10
  •   Quassnoi    16 年前
    <button name="someName" value="someValue" type="submit">Submit</button>
    <button name="otherName" value="otherValue" type="submit">Cancel</button>
    

    你会有 someName=someValue otherName=otherValue 在您的请求数据中

        2
  •  8
  •   Alnitak    16 年前

    当然,只要给你的每一个 submit 按钮a name 属性,无论点击哪个,都会出现在提交的变量中:

    <input type="submit" name="doConfirm" value="Confirm"  />
    <input type="submit" name="doCancel"  value="Cancel"  />
    
        3
  •  1
  •   laz    16 年前

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

        4
  •  0
  •   Clay    16 年前

    当使用多个提交按钮时,我喜欢使用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'" />
    
    推荐文章