如何使用jquery以railsforms显示/隐藏?

我有一个rails视图(erb),显示一些复选框(来自seed.rb的填充数据)..当选择了某些复选框时,我需要在它下面显示一个div来收集更多信息。例如:用户检查“周年纪念日”并且它下方的div显示要求日期。 jquery是最好的方法吗? Coffescript?

*注意:我使用Wicked gem创建一个多步骤

inheritance人的观点:

   

下面是渲染的html(无论如何都是表单部分):

 

谢谢!

我想你应该做点什么

  if( $(#check_box_id).is(':checked')) { $("#div_id").show(); } else { $("#div_id").hide(); } 

这不是完美的代码,但你可以使用.hide()和.show()方法。
我希望这能帮到您。
谢谢。

Hiya 演示 http://jsfiddle.net/z862m/ 从您的网站链接提供的解决方案在这里: http : //jsfiddle.net/2UfBy/

所以演示会做你提到的。 即勾选复选框时,相应的div将显示,未选中则不会。 B-)

[quote]当选择某些复选框时,我需要在其下方显示一个div来收集更多信息。例如:用户检查“周年纪念日”并在其下面显示一个div,询问日期… [unquote] 🙂

Jquery代码

 $(".checkbox").click(function(){ $(this).next("div").toggle(); });​ 

HTML

  
Whatever you have to capture here
Whatever you have to capture here
Whatever you have to capture here
Whatever you have to capture here
Whatever you have to capture here

JQuery是一个很好的方法。 您需要在application.js文件中使用相应的require语句才能使用JQuery

 //= require jquery.js 

一个简单的方法是将你想要显示和/或隐藏的所有内容用span标记包围,然后使用JQuery从* .js.erb文件触发span标记上的显示/隐藏

您可以使用以下respond_with块来指定format.js(javascript)响应。 代码在控制器的方法名称中与表单的名称匹配:

 def hide_show_form respond_with do |format| format.js end end 

这将导致hide_show_form.js.erb在hide_show_form.html.erb中的HTML呈现之前首先运行。

hide_show_form.js.erb

 $('span#hide_and_show').hide(); // hide the appropriate span tag right away function showHiddenForm() { // this can be triggered using :onclick if ($('span#hide_and_show').css('display') == 'none') { $('span#hide_and_show').show(); } else { $('span#hide_and_show').hide(); } } 

hide_show_form.html.erb

 <%= check_box_tag(:hide_show_checkbox, "hide_show_checkbox", false, :onclick=>"showHiddenForm();") %>  <%= label_tag(:optional_data, "You might not always see this field:") %>&nbsp&nbsp <%= text_field_tag(:optional_data) %>  

此示例指定check_box_tag的:onclick属性,以调用js.erb文件中的JavaScript函数showHiddenForm()。