【问题标题】:Jquery .submit with function() does not workJquery .submit with function() 不起作用
【发布时间】:2017-12-05 17:58:26
【问题描述】:

我正在使用 Jquery,如果单击链接或执行某些操作,我想自动更新页面上的表单。如果我使用 .submit() 它工作正常,如果我使用 .submit(function(e){}) 表单将不会提交。我需要从表单提交中获得响应,这就是为什么我需要 .submit(function(e){}) 来处理 .submit()。谢谢。

我有一个表格:

  <form action="action.html" id="form1">
  </form>

我有一个链接:

 <a href="" data-id="1" class="myLink">Link</a>

当我点击链接时,我会执行以下操作:

 $(document).on('click', '.myLink', function(e) {
      // this will call a function to submit my form...
      var response = saveEmailDraft($(this).data('id'));
      e.preventDefault();
 });  

 function saveEmailDraft(id){
      $('#form' + id).submit(); // this works fine...
      $('#form' + id).submit(function(e){
          // this DOES NOT work...
          alert('my form submitted!');
      }); 

      // I've also tried;
      $(document).ready(function() {
           $('#form' + id).submit(); // this works fine...
           $('#form' + id).submit(function(e){
               // this DOES NOT work...
               alert('my form submitted!');
           });
      });

 }

【问题讨论】:

  • 您也需要在提交表单时.preventDefault()
  • 具体如何“不起作用”?您是否尝试在设置该处理程序后提交表单?当你这样做时会发生什么?你期待var response 包含什么?为什么?当你第一次调用.submit() 时,整个页面不会重新加载吗?
  • 什么都没有发生,没有执行 ajax 请求。当我只使用 .submit() 时,ajax 请求会发生, .submit(function()) 它会爆炸。
  • 所以你调用提交而不是绑定一个方法......所以你想知道为什么某些东西没有响应已经发出的调用......
  • @LargeTuna:此代码中没有 AJAX。而且“它爆炸了”并不能真正描述问题。

标签: javascript php jquery html forms


【解决方案1】:

您需要在提交表单之前绑定事件处理程序

function saveEmailDraft(id){
    $('#form' + id).submit(function(e){
        alert('my form submitted!');
    }); 
    $('#form' + id).submit();
}

但这不会让您从表单提交中获得响应。事件处理程序在表单数据发送到服务器之前执行。提交表单后,页面会重新加载,并且所有当前脚本都会停止运行。

如果你想得到响应,你需要使用$.ajax(或者像$.get$.post这样的快捷方式)而不是.submit()

【讨论】:

  • 这不是两次调用同一个东西吗?
  • 没有。 submit() 带参数绑定处理程序,不带参数则提交表单。
  • @LargeTuna 阅读有关您不了解的事物的文档。 api.jquery.com/submit
猜你喜欢
  • 2021-07-06
  • 2016-08-01
  • 2015-10-14
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多