:remote => true / data-remote在通过ajax加载的表单上
在我的Rails应用程序中,我有一个使用jQuery加载方法通过Ajax加载的表单。
function load_sales_form(product_id) { $("#sales_form").load(" :show_sales_form) %>"/ + product_id); }
加载的表单有一个form_for标记,其中包含:remote => true选项,它会将data-remote =“true”属性添加到表单中。
但是,当用户单击“提交标记”按钮时,不会使用Ajax提交表单。 如果表单以标准的非ajax方式加载,它可以正常工作,但是在文档准备好之后通过ajax加载表单,不使用ajax提交,它提交为标准表单。
从我到目前为止所研究的情况来看,这是因为rails.js文件(其中包含允许通过ajax提交数据远程表单的内容)不会将其function应用于通过ajax加载的html内容。
是否可以强制rails.js文件将其function应用于通过Ajax加载的内容?
这里的情况相同。 我找到了解决方案。 不是动态加载,而是在我的情况下错误地触发submit
事件。
我有一个带有data-target
和href
属性集的Bootstrap模式 。 这会导致.modal-body
内的内容通过AJAX从href
指定的地址加载。
模态预先配备了保存按钮(在加载的表单之外),这就像这样调用提交。
$modal.find("form.loaded_form").get(0).submit(); // INCORRECT
前者仅执行原始提交,但是:
$modal.find("form.loaded_form").trigger('submit'); // CORRECT
诀窍。