更改表单中的数据远程操作无效,而更改操作则有效。
我正在处理一个表单,该表单需要首先通过对后端服务器执行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),它将按预期直接跳转到新页面。
答案 0 :(得分:0)
由于我没有太多时间对此进行进一步调查,因此我将其留给了上述解决方法。