0

我有一个通过 html 提交更新模型的管理表单。我希望能够通过管理表单中的链接或按钮将表单的内容发送到 Ajax 模式对话框以进行“预览”。

有没有办法通过 Ajax 将表单的内容发送到模态对话框而不破坏 html 提交?到目前为止,我所能做的就是将数据作为 html 放入模式中,这会破坏 js 渲染。我发现的所有 Ajax 提交示例都附在表单上,​​这将破坏 html 提交。

建议和/或指针表示赞赏。

我们使用 Rails 3.2.12 是为了它的价值。

4

2 回答 2

1

我想这取决于你如何渲染你的模态。如果您在服务器端进行操作,并且只需要将表单值获取到您的 ajax 控制器操作,您可以使用 jquery 执行类似的操作“

$.post(ajaxUrl + "?" + $("#myform").serialize())

生成表单值的查询字符串,您可以将其发送给 ajax 模型。

或者,如果您正在构建模态客户端,请尝试

$("#myform").serializeArray()

得到一组name, value

于 2013-02-16T02:57:47.010 回答
0

这就是让它在 Rails 3.2.12 下工作所需要的

看法:

<%= link_to 'Preview Promotion UI', admin_preview_promotion_url, id: :promotion_preview %>

上面的链接在 do/end 表单中。

application.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 的响应类型,然后阻碍了路由。至少在这种情况下,只需将 PUT 替换为 POST 即可解决问题。

使用这段代码,我可以像往常一样发布我的表单更新,并使用表单数据激活模式对话框“预览”。

于 2013-02-16T21:01:55.887 回答