0

这是我发现让所有三个浏览器毫无问题地提交表单的唯一方法。有明显的原因吗?一个更优雅的解决方案?我正在使用 jQuery 1.9。Chrome 在这里是个奇怪的人,因为 else 中的代码足以通过 IE 和 Firefox 提交。

function submitFormByPost(actionName){ 
     $("#eventAction").val(actionName);

     var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
     if(is_chrome){
          document.getElementById('myForm').method='POST';
          document.getElementById('myForm').submit();
     }
     else{
          document.forms[0].method='POST';
          document.forms[0].submit(); 
     } 
}
4

3 回答 3

3

jQuery 应该已经提供了一种跨浏览器的方式来提交表单。尝试:

var $form = $("#myForm");
$form.attr('method', 'post');
$form.submit();
于 2013-08-07T15:39:08.560 回答
0

这是为了一些旧版 Chrome 的兼容性。通常document.forms[0]在 Chrome 上和在其他浏览器上一样好。检查、打开 Chrome 控制台并写入的最简单方法console.log(document.forms[0]);- 工作正常。

于 2013-08-07T15:38:56.640 回答
0

在 Chrome 中工作的方式也适用于其他方式,所以只需使用它:

function submitFormByPost(actionName){ 
  $("#eventAction").val(actionName);
  var frm = document.getElementById('myForm');
  frm.method = 'POST';
  frm.submit();
}

或者一直使用 jQuery:

function submitFormByPost(actionName){ 
  $("#eventAction").val(actionName);
  $('#myForm').attr('method', 'POST').submit();
}
于 2013-08-07T15:46:32.027 回答