4

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

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

加载的表单有一个带有:remote => true选项的 form_for 标记,它确实将data-remote="true"属性添加到表单中。

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

从我目前的研究来看,这是因为 rails.js 文件(其中包含允许通过 ajax 提交数据远程表单的内容)没有将其功能应用于通过 ajax 加载的 html 内容。

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

4

1 回答 1

2

这里的情况相同。我找到了解决方案。不是动态加载,而是submit事件的错误触发是我的原因。

我有一个带有和属性集的引导模式。这会导致 a 中的内容通过 AJAX 从.data-targethref.modal-bodyhref

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

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

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

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

成功了。

于 2013-09-05T17:12:23.423 回答