Firefox提交表单外部按钮的处理程序

时间:2016-02-17 20:29:42

标签: jquery forms firefox

鉴于以下 HTML:

<form id='test' action='URL'>...</form>
<button type='submit' form='test' formaction='OTHERURL'>submit</button>

当我为表单分配jquery提交处理程序时,它无法识别FireFox中的提交。在Chrome,Opera,Safari这不是问题。

  • 有没有人有这方面的经验?
  • 此问题的最佳解决方法是什么?

1 个答案:

答案 0 :(得分:0)

我无法理解这个问题,因为在我的计算机上,按钮类型提交适用于所有浏览器。

所以只是建议你一些不同我建议你处理按钮上的点击事件,然后触发提交事件,如下面的代码片段所示:

$(document).on('click', 'button:submit', function(e) {
  var frm = $('#' + e.target.getAttribute('form'));
  var formAction = e.target.formAction.length > 0 ? e.target.formAction : frm.attr('action');
  document.querySelector('#result') += '<p>Button Submit Clicked: ' + formAction + '</p><br>';
  $('#' + e.target.getAttribute('form')).trigger('submit');
});
$(document).on('submit', '#test', function(e) {
  e.preventDefault();
  document.querySelector('#result') += '<p>submit</p><br>';
});
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>

<form id='test' action='z.json'>
    First name:<br>
    <input type="text" name="firstname"><br>
    Last name:<br>
    <input type="text" name="lastname"><br><br>
</form>
<button type="submit" form='test'>Submit</button>
<button type='submit' form='test' formaction='http://www.google.it'>Submit as New url</button>
<div id='result'></div>