动态创建表单轨道
Dynamically create form rails
我在页面上有几个按钮,根据单击的按钮,我想显示具有特定表单的模态视图。
我的想法:1)我可以为每个按钮生成一个模态表单。但是我可能会有很多按钮,所以这将很快变得低效。2)我可以在使用javascript按下按钮后创建表单。这在导轨上可能吗?我想使用form_tag并根据单击的按钮传入对象或其 id。
谢谢!
首先将每个窗体视图放在不同的部分(_form1.html.erb,_form2.html.erb,_form3.html.erb)中。使视图中的每个按钮向控制器发送一个不显眼(http://railscasts.com/episodes/205-unobtrusive-javascript)请求,其中包含要呈现的表单的参数。然后在 .js.erb 文件中,您根据按钮发送的参数来决定呈现哪个表单,然后将此表单附加到模态
my_view.html.erb
<%= link_to "Render Form1", my_controller_my_method_path(:form => "_form1",:object_type => "Object1",:object_id => '100'),:remote => true %>
<%= link_to "Render Form2", my_controller_my_method_path(:form => "_form2",:object_type => "Object2",:object_id => '144'),:remote => true %>
<%= link_to "Render Form2", my_controller_my_method_path(:form => "_form3",:object_type => "Object3",:object_id => '160'), :remote => true %>
<div id="#my_modal"></div>
my_controller.rb
def my_method
@form_partial=params[:form]
@object=params[:object_type].constantize.find(params[:object_id])
respond_to do |format|
format.js{render :action=>:my_method}
end
end
my_method.js.erb
$('#my_modal').html("<%= j render :partial => @form_partial %>");
_form1.html.erb
<%= form_tag @object do |form| =>
<%= form.input :name%>
<%end%>
您必须在
按钮单击时向其中一个操作发送远程请求,在该操作中,您将决定模态视图的值作为注释传递,并使用远程 js 在模态内呈现相应的视图
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何使用WCF服务和javascript表单post上传.doc文件
- Javascript生成的表单未提交
- 如何使用javascript或html下载PDF格式的填写表单
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- Ajax发布表单序列化,发布引号'
- 多级HTML表单
- 动态创建表单轨道
- 轨道:填充表单中选择标签的输入
- 带有使用其字段之一动态构造的 URL 的轨道表单
- 轨道表单 :从以前选择的字段中更改表单字段
- Ajax 切换表单 JS(轨道)
- 轨道编辑表单无法正常工作
- 轨道.jQuery表单提交字段模糊
- 如何在轨道上传递 ruby 将参数从表单传递到 jQuery 脚本
- 禁用表单默认行为轨道
- 轨道.来自片段的表单片段.IO取消表单的重定向
- 轨道406〃;不可接受”;远程表单错误