我有一个管理表单,通过html提交更新模型。我希望能够通过管理表单中的链接或按钮将表单的内容发送到Ajax模式对话框以进行“预览”。
有没有办法通过Ajax将表单的内容发送到模式对话框而不破坏html提交?到目前为止,我所能做的就是将数据作为html获取,打破了js渲染。我找到的所有Ajax提交示例都附加到将破坏html提交的表单。
赞赏建议和/或指示。
我们正在使用Rails 3.2.12来获取它的价值。
答案 0 :(得分:1)
我想这取决于你如何渲染你的模态。如果您正在服务器端并且只需要将表单值获取到ajax控制器操作,那么您可以使用jquery执行此类操作“
$.post(ajaxUrl + "?" + $("#myform").serialize())
生成您可以发送给您的ajax模型的表单值的查询字符串。
或者,如果您正在构建模态客户端,请尝试
$("#myform").serializeArray()
获取name, value
对数组
答案 1 :(得分:0)
这是在Rails 3.2.12
下使其工作所需的查看:
<%= link_to 'Preview Promotion UI', admin_preview_promotion_url, id: :promotion_preview %>
以上链接位于表单do / end。
app.js中的Javascript
$("#promotion_preview").live('click', (function (event) {
event.preventDefault();
$.post("/store/admin/promotions/preview",
$(event.currentTarget.parentElement).serialize().replace('=put&', '=post&'),
{},
"script"
);
}));
Rails.js在页面中注入一些隐藏代码,用于设置对PUT的响应类型,然后阻碍路由。至少在这种情况下,简单地用POST替换PUT就可以解决问题。
使用这段代码,我可以照常发布表单更新,并使用表单数据激活模式对话框“预览”。