选中所有复选框。。。使用javascript和rails

选中所有复选框。。。使用javascript和rails,javascript,ruby-on-rails,Javascript,Ruby On Rails,我在这里遇到了某种类型的错误。什么都没有发生。有人知道为什么吗 事先谢谢你 -form_tag :action => 'form', :name =>'admin_form' do #images_actions_bar .select_all =check_box_tag('check_all', 'check_all', false, :onClick => "$$('admin_form input.chec

我在这里遇到了某种类型的错误。什么都没有发生。有人知道为什么吗

事先谢谢你

      -form_tag :action => 'form', :name =>'admin_form' do 
       #images_actions_bar
        .select_all
          =check_box_tag('check_all', 'check_all', false, :onClick => "$$('admin_form input.check').each(function(box){box.checked=true});return false;")
==============

谢谢。最终对我起作用的是这样一个复选框:

 =check_box_tag('check_all', 'check_all', false, :onClick => "checkAll(document.admin_form.check_all, document.admin_form.checkbox);")
function checkAll(field_main, fields){
if(field_main.checked == true){
    for (i = 0; i < fields.length; i++)
        fields[i].checked = true ;
}else{
    for (i = 0; i < fields.length; i++)
        fields[i].checked = false;
}
还有一个js函数,如下所示:

 =check_box_tag('check_all', 'check_all', false, :onClick => "checkAll(document.admin_form.check_all, document.admin_form.checkbox);")
function checkAll(field_main, fields){
if(field_main.checked == true){
    for (i = 0; i < fields.length; i++)
        fields[i].checked = true ;
}else{
    for (i = 0; i < fields.length; i++)
        fields[i].checked = false;
}
函数checkAll(字段\主字段,字段){
如果(字段_main.checked==true){
对于(i=0;i
不清楚您使用的是什么javascript框架。我实际上只使用了jQuery和(最少)原型。因此,我要检查
admin\u表单是否正确选择了表单元素。在jQuery中,它必须是
form[name=“admin\u form”]

我已经修改了我以前编写的一个选中/取消选中所有jquery条目。希望它能有所帮助。首先,单击“全部选中”将选中所有复选框。单击复选框将取消选中“全部选中”复选框

$('#check_all').click(function() {
    var checkboxes = $('form[name="admin_form"] > input:checkbox');
    $(checkboxes).each(
        function(){
            this.checked = $('#check_all').attr('checked');
        }
    );
});
$('form[name="admin_form"] > input:checkbox').click(function() {
var checkAll = $('#check_all');
if ($(checkAll).is(':checked') && !($(this).is(':checked')))
     { $(checkAll).removeAttr('checked'); }
 });

不清楚您使用的是什么javascript框架。我实际上只使用了jQuery和(最低限度)原型。因此,我要检查
admin\u form
是否正确选择了表单元素。在jQuery中,它必须是
form[name=“admin\u form”]

我已经修改了我以前编写的一个选中/取消选中所有jquery条目。希望它能有所帮助。首先,单击“全部选中”将选中所有复选框。单击复选框将取消选中“全部选中”复选框

$('#check_all').click(function() {
    var checkboxes = $('form[name="admin_form"] > input:checkbox');
    $(checkboxes).each(
        function(){
            this.checked = $('#check_all').attr('checked');
        }
    );
});
$('form[name="admin_form"] > input:checkbox').click(function() {
var checkAll = $('#check_all');
if ($(checkAll).is(':checked') && !($(this).is(':checked')))
     { $(checkAll).removeAttr('checked'); }
 });

原始问题中的答案让我开始思考,但我遇到了问题,因为我的复选框名为
message\u id[]
。括号导致JS语法错误

按照中的一种模式,我绕过了这个问题,通过循环表单上的所有输入字段,然后使用
type=“checkbox”
显式地操作这些字段

我的视图中的这段代码创建了“全选”复选框(故意不带标签):

“选中所有(此);”)%>
它使用以下JavaScript:

function checkAll(check_all){
  // Pass in a named "Check All" checkbox that appears on the same form where all 
  // checkboxes should be checked.

  // Loop through an array containing ALL inputs on same form as check_all
  var inputs = check_all.form.getElementsByTagName("input");
  for (var i = 0; i < inputs.length; i++) {  
    // Only work on checkboxes, and NOT on the "Check All" checkbox
    if (inputs[i].type == "checkbox" && inputs[i].name != check_all.name) { 
      if(check_all.checked == true){
        inputs[i].checked = true ;
      }else{
        inputs[i].checked = false ;
      }
    }  
  }  
}
功能检查全部(检查全部){
//传入一个命名的“全选”复选框,该复选框显示在所有
//应选中复选框。
//循环遍历一个数组,该数组包含与check_ALL相同形式的所有输入
var inputs=check_all.form.getElementsByTagName(“输入”);
对于(var i=0;i
原始问题中的答案让我开始思考,但我遇到了问题,因为我的复选框名为
message\u id[]
。括号导致JS语法错误

按照中的一种模式,我绕过了这个问题,通过循环表单上的所有输入字段,然后使用
type=“checkbox”
显式地操作这些字段

我的视图中的这段代码创建了“全选”复选框(故意不带标签):

“选中所有(此);”)%>
它使用以下JavaScript:

function checkAll(check_all){
  // Pass in a named "Check All" checkbox that appears on the same form where all 
  // checkboxes should be checked.

  // Loop through an array containing ALL inputs on same form as check_all
  var inputs = check_all.form.getElementsByTagName("input");
  for (var i = 0; i < inputs.length; i++) {  
    // Only work on checkboxes, and NOT on the "Check All" checkbox
    if (inputs[i].type == "checkbox" && inputs[i].name != check_all.name) { 
      if(check_all.checked == true){
        inputs[i].checked = true ;
      }else{
        inputs[i].checked = false ;
      }
    }  
  }  
}
功能检查全部(检查全部){
//传入一个命名的“全选”复选框,该复选框显示在所有
//应选中复选框。
//循环遍历一个数组,该数组包含与check_ALL相同形式的所有输入
var inputs=check_all.form.getElementsByTagName(“输入”);
对于(var i=0;i
功能全选(全选){
//传入一个命名的“全选”复选框,该复选框显示在所有
//应选中复选框。
//循环遍历一个数组,该数组包含与check_ALL相同形式的所有输入
var inputs=check_all.form.getElementsByTagName(“输入”);
对于(var i=0;i
功能全选(全选){
//传入一个命名的“全选”复选框,该复选框显示在所有
//应选中复选框。
//循环遍历一个数组,该数组包含与check_ALL相同形式的所有输入
var inputs=check_all.form.getElementsByTagName(“输入”);
对于(var i=0;i
Nice!我希望更多的人能像那样发布工作解决方案。Nice!我希望更多的人能像那样发布工作解决方案。