【问题标题】:One form, two buttons?一个表格,两个按钮?
【发布时间】:2018-04-02 03:01:08
【问题描述】:

我有一个表格。我希望它有两个按钮(按钮A,按钮B)。有没有比保留隐藏的输入字段并通过 onClick() 中的 javascript 将其值设置为每个不同的字符串更好的方法来确定单击了哪个按钮?

这就是本文所展示的内容: http://www.java2s.com/Code/Java/JSP/JspformUsingButtons.htm

但这似乎有点奇怪,没有比跳过那些箍更好的方法了吗?

谢谢

【问题讨论】:

标签: html forms jsp


【解决方案1】:

您可以使用namevalue 属性来区分表单上的按钮,然后从服务器读取适当的值。这是一个例子:

​<form method="get" action="test.htm" target="new">
  <button type="submit" name="button" value="1">Button One</button>
  <button type="submit" name="button" value="2">Button Two</button>
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​

当点击Button 1时,URL会包含button=1,当然当点击Button 2时,会包含button=2

显然,您可以使用任何您希望的name 属性,只要两个按钮具有相同的name。使用 POST 而不是 GET 时,这同样适用。

http://jsfiddle.net/M74xN/

【讨论】:

    【解决方案2】:

    使用 jsp 和 servlet 可能的操作是:

    在html或jsp页面中

    <form method="POST" action="servlet">
      <button type="submit" name="action" value="add">add</button>
      <button type="submit" name="action" value="edit">delete</button>
    </form>​​​​​​​​​​​​​​​​​​​​​​​​​​
    

    Servlet POST 方法

    if (request.getParameter("action") != null) //if action is not null
            {
                String action = request.getParameter("action");
                if (action.equals("add")) //add button clicked
                {
                   //do your work here
                }
                else if (action.equals("edit")) //delete button clicked
                {
                    //your work here
                }
    }
    

    【讨论】:

      【解决方案3】:

      创建一个表单,设置不同的提交按钮值,并让你的脚本根据按下的按钮执行不同的操作。

      if (isset($_POST) {
          if ($_POST['button'] == 1) {
           /* BUTTON ONE PRESSED, INSERT PROCESSING HERE*/
          } else if ($_POST['button'] == 2) {
           /* BUTTON TWO PRESSED, INSERT PROCESSING HERE*/
          } else {
           /* NO BUTTON PRESSED, (THIS ELSE STATEMENT MAY NOT BE NEEDED) */
          }
      
      /** END OF PHP CODE **/
      <--! start of html -->
      <html>
      <form method="get" action="<?php echo "$server['php_self']; ?>" target="new">
        <button type="submit" name="button" value="1">Button One</button>
        <button type="submit" name="button" value="2">Button Two</button>
      </form>​​​​​​​​​​​​​​​​​​​​​​​​​​
      </html>
      

      【讨论】:

        【解决方案4】:

        虽然答案可能会迟到。这完美地工作。在您的 HTML 中使用以下内容。

        <form action="/route" method="POST">
            <button name="submit" value="ONE">
            <button name="submit" value="TWO">
        </form>
        

        然后在你的 Python(Flask) 中使用这个

        if request.form['submit'] == 'ONE':
            print('button one clicked')
        elif request.form['submit'] == 'TWO':
            print('button two clicked')
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-12-07
          • 1970-01-01
          • 1970-01-01
          • 2015-07-04
          • 2020-08-11
          • 2018-03-29
          • 1970-01-01
          • 2013-08-28
          相关资源
          最近更新 更多