在表单上使用jQuery更改动作和数据远程操作不起作用

时间:2019-01-14 09:53:02

标签: jquery ruby-on-rails ajax

更改表单中的数据远程操作无效,而更改操作则有效。

我正在处理一个表单,该表单需要首先通过对后端服务器执行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调用是如何完成的,并且该调用成功返回。然后随同data-remote选项一起更改forms动作。 然后,它POSTs进入新的set操作,但这是xhr调用。

如果我将表单更改为不带data-remote选项的第二个动作(/ action2),它将按预期直接跳转到新页面。

1 个答案:

答案 0 :(得分:0)

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