如何让人们在rails中选择TextArea字段(来自多个文本区域字段)?

时间:2013-02-27 10:47:49

标签: jquery ruby-on-rails ruby-on-rails-3

所以我只有一个文本字段BODY填充了预先内容First Value

<%= f.input :body, :input_html  => { :value => "First Value" } %>

现在我想让用户选择从多个文本区域复选框中选择文本区域,我该怎么做?有关更好的说明,请参见图片http://i.imgur.com/Xy4LVko.png

我假设将涉及一些jQuery

由于

2 个答案:

答案 0 :(得分:1)

是的,你是对的,你将不得不使用一些jquery。考虑您的复选框ID为“checkbox_1”,textarea id为“textarea_1”,然后您可以按如下方式进行此操作:

$(document).ready(function(e){
  $("#checkbox_1").click(function(e) {
    $("#textarea_1").focus();
  });
});

如果需要,您还可以检查复选框的值。

答案 1 :(得分:1)

我们可以将复选框和相应的输入分组,如下所示

<% form_for @object do |f| %>
    <div class="optional-input">
        <%= check_box_tag :attribute1 %>
        <%= f.text_area :attribute, :class => "display: none;" %>
    </div>
    <div class"optional-input">
        <%= check_box_tag :attribute2 %>
        <%= f.text_area :attribute2, :class => "display: none;" %>
    </div>
    ................
    ................

现在,如果我们有复选框元素,我们可以访问相应的textarea,因为它们是兄弟姐妹。然后我们可以将on-change事件处理程序绑定到每个复选框,这是div元素的子元素。

$(document).ready(function(){
    $('.optional-input').find(':checkbox').change(function(){
        if($(this).is('checked')){
            $(this).siblings('textarea').show()
        }
        else{
            $(this).siblings('textarea').hide()
        }       
    })
})  

我希望它会起作用