如何使用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
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:") %>   <%= text_field_tag(:optional_data) %>
此示例指定check_box_tag的:onclick属性,以调用js.erb文件中的JavaScript函数showHiddenForm()。