【问题标题】:Having two submit buttons [duplicate]有两个提交按钮[重复]
【发布时间】:2013-12-06 15:49:22
【问题描述】:

我有两个提交按钮,一个后退提交按钮和一个下一个提交按钮,当用户在文本输入中并按 Enter 键时,它会将它们向后退...我认为这是因为 enter 唤起了后退提交按钮的下一个提交按钮。

<form action="" method="post">

    <input type="submit" name="GOTO1" value="back" />

    <input type="text" name="value1" />

    <input type="submit" name="GOTO3" value="next" />

</form>

因此,当您不是文本字段时,按回车键执行第一个提交按钮,我该如何更改...

【问题讨论】:

  • 这就是全部代码吗?如果是这样,我不知道他们将如何被收回
  • 单输入的表单会在按下回车时自动提交。在这种情况下,第一个按钮执行操作。
  • 每次提交时创建两个单独的表单...或者您可以使用 jQuery 阻止默认提交,运行 IF 语句(基于提交值),然后让 jQuery 根据点击按钮。

标签: html forms


【解决方案1】:

走 jQuery 路线...(未经测试)。

// Prevent default on form on page load
// or on "enter"
$('form').disable();

// OR....

// Disable the ENTER key altogether on the form inputs
$('form').find('.input').keypress(function(e){
   if (e.which == 13) // Enter key is keycode 13
   {
       return false;
   }    
});

$('input[type="submit"]').on('click', function() {
    var btn = $(this).val();

    if(btn == 'back') 
    {
        // do this to go back, code here
    }
    else 
    {
        // do this to go to next, code here
    }
    return false;
});

【讨论】:

  • 我觉得禁用它是最好的选择,因为不存在真正的解决方案。谢谢!
  • 干杯 - 编码愉快!
【解决方案2】:

使用

<input type="button" ... >

每个表单不应该有超过一个提交,因为 ENTER 应该会触发它。

想了解更多,可以看看这个:https://stackoverflow.com/a/469084/955143

【讨论】:

  • 不是解决问题的办法,需要在用户来回的时候把信息保存在表单中。
【解决方案3】:

非常简单的解决方法

<script>
    function myFunction()
{ 
}
    function myFunction2()
{ 
}
</script>
</head>
<body>
<form action="" method="post">

    <input type="submit" name="GOTO1" value="back" onclick="myFunction2()"/>

    <input type="text" name="value1" />

    <input type="submit" name="GOTO3" value="next" onclick="myFunction()" />

</form>

不整洁,但它适用于 onclick 编号参考。

希望这会有所帮助...

【讨论】:

  • 这并没有解决用户在表单中按下回车时的问题......
  • 检查我的答案,伙计...
  • 是的,jquery 总是最好的,我试图通过一个技巧留在 html 中:) 好手男人
猜你喜欢
  • 2015-09-20
  • 2018-01-19
  • 2014-10-08
  • 2016-07-21
  • 1970-01-01
  • 2014-06-13
  • 2011-11-07
  • 1970-01-01
  • 2016-10-10
相关资源
最近更新 更多