【问题标题】:changing action and data-remote with jQuery on form doesn't work在表单上使用 jQuery 更改操作和数据远程不起作用
【发布时间】:2019-01-14 09:53:02
【问题描述】:

在表单中更改数据远程不起作用,而更改操作则可以。

我正在处理一个需要首先通过对后端服务器执行POST 来检查有效性的表单。例如,表单操作是/action1,而data-remote 选项设置为true。 在成功调用 ajax 后,我将操作更改为 /action2 并将数据远程更改为 false,以便通过输入的字段值跳转到下一页。 我可以看到动作和数据远程都发生了变化,但是 POST 是作为 ajax 调用对新的 /action2 完成的,因此让我在同一页面上。

显然数据远程选项更改不起作用

$('form').bind('ajax:complete', function (evt, xhr, status) {
      setTimeout(function () {
          if (xhr.status === 200) {
            // Submit to forms
            $("#ds-form").attr('action','/action2').attr('data-remote','false').submit();
          } else {
            window.location = '/home';
          }
        }, 1100);
    });
});

在检查器窗口中,我看到第一个 ajax 调用是如何完成的,并且调用成功返回。然后表单操作与数据远程选项一起更改。 然后它 POSTs 到新的 set 操作,但这作为 xhr 调用。

如果我在没有数据远程选项的情况下将表单更改为转到第二个操作 (/action2),它会按预期直接跳转到新页面。

【问题讨论】:

  • 现在,我通过将表单 /action2 和 data-remote 设置为 false 来反转操作。然后在提交按钮 click() 事件上执行 ajax 调用来进行验证,如果成功,执行 form.submit()。它可以工作,但是更改 data-rmote 选项没有效果仍然很奇怪。

标签: jquery ruby-on-rails ajax


【解决方案1】:

由于我没有太多时间对此进行进一步调查,因此我将其保留为上述解决方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    相关资源
    最近更新 更多