【问题标题】:Submitting modal pop up form and another form simultaneously同时提交模态弹出表单和另一个表单
【发布时间】:2011-12-09 20:46:43
【问题描述】:

我有两种形式。一个在模式弹出窗口中,一个在下面的页面中。我想使用此代码同时提交它们:

$('.window .submitlink').click(function (e) {
    $('#form2').submit();                            
    $('#form1').submit();
});

但是存在一个问题,那就是:它不处理form2的action中的页面,而只是处理form1中的action。

顺便说一句,我在 wordpress 中这样做。有什么想法吗?

【问题讨论】:

  • 您可以在(一个)表单上设置target属性,将提交定向到框架或新页面(_blank)。

标签: jquery jquery-click-event


【解决方案1】:

HTML 表单的默认行为(您使用 .submit() 触发的是在初始操作完成后立即跟随表单的操作。要覆盖它,您必须采取措施使其正常工作' d期待它,一个接一个地提交。

当前流程面临的挑战是,如果提交失败,您不允许提供任何反馈。提交时没有任何指示符允许视图通知用户存在问题,也没有任何东西可以防止第二个在第一个失败时盲目提交。

您可以尝试两种方法来实现这一点:

  1. 组合表格。然而,这可能与您的代码设计相悖
  2. Nest Ajax 提交。这允许您获得对视图的动态“反馈”,并根据第一次提交的成功开始/停止第二次提交,而没有覆盖数字 2 的默认操作。

一些注意事项:

  • 如果您在表单中使用按钮,它将默认提交表单,除非您执行“覆盖默认设置”
  • 如果您使用 ajax 路由,请在表单上使用 .serialize() 来获取值,而无需通过 id 指定它们 id

【讨论】:

    【解决方案2】:

    您需要使用每个表单的内容动态创建帖子。首先,您需要参数化表单,然后通过 $.post 或 $.ajax 发布该数据

    例如: var 数据 = {};

    $('#form1 input').each(function () {
        data[$(this).attr('name')] = $(this).val();
    }
    
    $('#form2 input').each(function () {
        data[$(this).attr('name')] = $(this).val();
    }
    $.post('mytarget/address/topost/to', data);
    

    这假设您发布到同一个地方。如果没有,您将不得不使用单独的 $.post 语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多