Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails 3.1-活动的\u管理和复选框_Javascript_Ruby On Rails 3.1_Checkbox_Formtastic_Activeadmin - Fatal编程技术网

Javascript Rails 3.1-活动的\u管理和复选框

Javascript Rails 3.1-活动的\u管理和复选框,javascript,ruby-on-rails-3.1,checkbox,formtastic,activeadmin,Javascript,Ruby On Rails 3.1,Checkbox,Formtastic,Activeadmin,这个问题实际上是两个问题 全选按钮-Active\u admin使用formtastic呈现表单,因此我将在formtastic的上下文中询问。如何创建一个按钮来选择页面上的所有复选框?我可以用JavaScript来做,但我不确定如何用formtastic来做 根据选择值设置集合。我有一个下拉菜单,让人们从“课程”列表中选择。学生已注册课程,因此我希望能够显示注册课程的学生的复选框列表。Ie:如果用户选择不同的课程,学生列表将发生变化 course.rb 你和你属于很多学生吗 student.r

这个问题实际上是两个问题

  • 全选按钮-
    Active\u admin
    使用formtastic呈现表单,因此我将在formtastic的上下文中询问。如何创建一个按钮来选择页面上的所有复选框?我可以用JavaScript来做,但我不确定如何用formtastic来做
  • 根据选择值设置集合。我有一个下拉菜单,让人们从“课程”列表中选择。学生已注册课程,因此我希望能够显示注册课程的学生的复选框列表。Ie:如果用户选择不同的课程,学生列表将发生变化

    course.rb 你和你属于很多学生吗

    student.rb 你和你属于很多课程吗


  • Formtastic没有一个简单的“全选”复选框解决方案,如果您使用JQUERY,您可以这样做

    在student.rb模型中添加

    attr_accessor :select_all_courses
    
    f.inputs "Courses" do
      f.input :select_all_courses, :as => :boolean, :label => 'SELECT ALL', :input_html => {:onclick => "jQuery.each( $('.student_courses_checkboxes'), function() { this.checked = $('.all_selector')[0].checked });", :class => "all_selector"}  
      f.input :courses, :as => :check_boxes, :collection => @courses, :input_html => {:class => 'student_courses_checkboxes'}      
    end
    
    使用formtastic在active admin中所能做的最好的事情是:

    以你的课程形式

    f.input :students, :as => :check_boxes, :collection => @students   
    

    因为我需要自动向所有复选框组输入添加全选/全选按钮,所以我向active_admin.js(从active_admin.js.coffee重命名,因为它不使用CoffeeScript)添加了一些javascript

    /=需要活动的\u admin/base
    $(文档).ready(函数(){
    var$select_btns=$('
  • select all取消选择all
  • ); $('.inputs.check_box')。每个(函数(i,el){ $(el).find('.choices组').prepend($select_btns.clone()); }); $(“.inputs”) .on('单击',')。选择“全部”,函数(){ var$复选框=$(this).parents('.choices group').find('input'); $复选框。每个(函数(){ this.checked=true; }); 返回false; }) 。在('单击','上。选择“无”,函数(){ var$复选框=$(this).parents('.choices group').find('input'); $复选框。每个(函数(){ 此项检查=错误; }); 返回false; }); });
    在Rails 4.0.4上使用ActiveAdmin 1.0.0。 希望这有帮助

    //= require active_admin/base
    
    $( document ).ready(function() {
        var $select_btns = $('<li class="choice"><div class="select-btn-container"><button class="select_all">Select all</button><button class="select_none">Deselect all</button></div></li>');
        $('.inputs .check_boxes').each(function (i, el) {
            $(el).find('.choices-group').prepend($select_btns.clone());
        });
    
        $('.inputs')
            .on('click', '.select_all', function () {
                var $check_boxes = $(this).parents('.choices-group').find('input');
                $check_boxes.each(function () {
                    this.checked = true;
                });
                return false;
            })
            .on('click', '.select_none', function () {
                var $check_boxes = $(this).parents('.choices-group').find('input');
                $check_boxes.each(function () {
                    this.checked = false;
                });
                return false;
            });
    });