【问题标题】:two submit buttons in one form executing two different servlets一个表单中的两个提交按钮执行两个不同的 servlet
【发布时间】:2012-07-06 13:07:57
【问题描述】:

我有一个包含两个提交按钮的表单。 一个用于创建用户,另一个用于登录现有用户。 我怎样才能从这两个按钮中触发两个不同的 servlet,使它们保持在一种形式中??

如果单击创建按钮然后执行 create.java 如果登录按钮被触发,则 login.java 被执行

【问题讨论】:

  • 视情况而定,每个 html form 始终只能使用 1 个 submit 按钮。解决方案:如果您使用GET 作为方法,您可以将一个submit 设置为普通的button 并链接到另一个页面(在您的情况下不推荐),您可以使用JavaScript 进行操作,或者您可以换行它们有两种不同的形式......

标签: html servlets


【解决方案1】:

如果你想使用 JavaScript,这是一个使用 jQuery ajax 的示例:

$(document).ready(function() {

    $('#id_of_your_button').click(function() {

            // do some stuff here, e.g.
            var str = $("#your_html_form").serialize();

            $.ajax({
          type: "POST",
          url: "url_to_your_file",
          data: str,
          success: function(msg) {

                      //...

              }
        }); 
        }

        // prevent the default action, e.g., following a link
        return false;
    });
});

编辑:

如果你想在没有 JavaScript 的情况下这样做,你可以像 <a href="page-to-register-new-user"><input type="button" value="register"></a> 那样做

否则,如果您想立即提交表单,则只能采用两个表单,或使用 JavaScript(也可以通过其他方式,例如,根据用户单击的按钮等使用 JavaScript 更改操作 URL) )...

...但每个 HTML 表单只允许一个“提交”按钮。

【讨论】:

    【解决方案2】:

    查看有关 HTML 按钮的 onclick 事件的教程:Here

    例子:

    <script type="text/javascript">
    function copyText()
    {
    document.getElementById("field2").value=document.getElementById("field1").value;
    }
    </script>
    
    <button onclick="copyText()">Copy Text</button>
    

    Source

    【讨论】:

    • 其实我不喜欢javascript。有没有其他方法可以解决这个问题??
    • @user1506349:您是否只链接到另一个页面?
    • @user1506349 除了 JavaScript,你还想要什么?
    猜你喜欢
    • 1970-01-01
    • 2016-12-01
    • 2018-03-29
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多