使用Jquery in循环(Rails)选择/取消选中多个复选框

时间:2014-10-17 11:46:46

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

我在RoR上工作,里面有两个循环,我用复选框显示记录。

<%= form_tag some_path, :method => 'post' do %>
  For loop
    <%= check_box_tag 'ids[]', value %> Name
    For loop
      <%= check_box_tag 'ids_of_second_loop[]', value %> Name
    end
  end
<%= submit_tag "Next" %>
<% end %>

现在我想应用一个jquery,我可以选择/取消选中复选框。

如果它不在循环中,我可以做到,

我在下面指的是实施链接, link

循环输出......

enter image description here

如何实现......

2 个答案:

答案 0 :(得分:2)

我会做像

这样的事情
<%= form_tag some_path, :method => 'post' do %>
  For loop
    <%= check_box_tag 'ids[]', value, class: 'parent' %> Name
    <div class='children'>
      For loop
        <%= check_box_tag 'ids_of_second_loop[]', value %> Name
      end
    </div>
  end
<%= submit_tag "Next" %>
<% end %>

注意复选框后面的“div class ='children'”和所有父复选框上的“parent”类

然后,javascript

$('input.parent').on('change',function(){
  $(this).next('.children').find('input[type=checkbox]').prop('checked',$(this).prop('checked'));
})

它在点击的复选框后用类'children'搜索下一个div,然后,它在该div中搜索type = checkbox的所有输入,并将prop“checked”设置为当前输入点击返回的值

答案 1 :(得分:0)

工作小提琴:

$("#button").click(function () {    
    if($("#test")[0].checked)
    {
        $("#test")[0].checked = false;
    }
    else
    {
        $("#test")[0].checked = true;
    }

});

http://jsfiddle.net/q8wvv1ky/