【问题标题】:Submit form with different submit buttons使用不同的提交按钮提交表单
【发布时间】:2017-05-01 17:36:18
【问题描述】:

我有一个可以使用不同提交按钮发送的表单:

<form id="my_form">
  <button type='submit' name='first_button'>
  <button type='submit' name='second_button'>
<form>

我已经通过 jquery 为提交按钮创建了处理程序 onclick,这些按钮阻止了默认操作,并做了一些工作,但是我需要提交这个表单。

如果我只是模拟点击按钮 - 所有触发到 onclick 的操作都会再次起作用。

如果我使用下面的代码,它只会激活第一个按钮的提交:

$("#my_form").get(0).submit();

那么如何根据点击的按钮以不同的方式发送表单呢?

【问题讨论】:

  • 共享事件处理程序

标签: javascript forms submit


【解决方案1】:

阻止默认表单提交。

$("#my_form").submit(function(e){
    return false;
});

// 将idclass 添加到btns 更好.. // 将不同的事件监听器添加到将执行提交操作的按钮

$("[name='first_button']").on('click', function(){...});

$("[name='second_button']").on('click', function(){...});

【讨论】:

  • 它没有解决我的问题。正如我所说,如果我只是模拟单击按钮 - 所有触发到 onclick 的操作都会再次起作用。所以我需要模拟提交,而不是点击。
  • @Jeremie 您可以在这些列表中手动提交表单,对吗?
  • 您是否阻止了默认表单提交?否则因为您的按钮类型是type='submit',表单将再次提交
  • @Jeremie 或者如果你说你的按钮点击处理程序被执行两次..然后offon之前的listner
  • 是的,事件默认行为被正确禁用,是的,可以手动提交表单
猜你喜欢
  • 1970-01-01
  • 2013-04-10
  • 2017-04-27
  • 1970-01-01
  • 2012-02-10
  • 2014-03-23
  • 2018-06-30
  • 2013-08-31
  • 1970-01-01
相关资源
最近更新 更多