通过 ajax 加载的表单上的 :remote => true/data-remote

2024-03-01

在我的 Rails 应用程序中,我有一个使用 jQuery 加载方法通过 Ajax 加载的表单。

function load_sales_form(product_id) {
    $("#sales_form").load("<%= url_for(:action => :show_sales_form) %>"/ + product_id);
}

加载的表单有一个 form_for 标记,其中包含:远程=>真选项,它确实添加了数据远程=“真”属性到表单。

但当用户单击提交标签按钮时,不会使用 Ajax 提交表单。如果表单以标准的非ajax方式加载,则工作正常,但如果文档准备好后通过ajax加载表单,则不会使用ajax提交,而是作为标准表单提交。

根据我到目前为止的研究,发生这种情况是因为rails.js 文件(其中包含允许通过ajax 提交数据远程表单的内容)不会将其功能应用于通过ajax 加载的html 内容。

是否可以强制rails.js 文件将其功能应用于通过Ajax 加载的内容?


这里的情况也一样。我找到了解决方案。 不是动态加载,而是错误触发submit在我的案例中,事件是原因。

I had a 引导模态 with data-target and href属性设置。这导致里面的内容.modal-body通过 AJAX 从指定的地址加载href.

该模式预先配备了保存按钮(在加载的表单之外),它像这样调用提交。

$modal.find("form.loaded_form").get(0).submit(); // INCORRECT

前者只执行原始提交,但是:

$modal.find("form.loaded_form").trigger('submit'); // CORRECT

就可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 ajax 加载的表单上的 :remote => true/data-remote 的相关文章