2011-01-08 20 views
2

ここではいくつかのエラーが発生しています。何も起こっていない。誰にもアイデアアイデアがあるのですか?すべてのチェックボックスを選択してください... javacript and 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.check').each(function(box){box.checked=true});return false;") 

==============

感謝。それはあなたが使用しているもののJavaScriptフレームワークは明らかではありません

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; 
} 

答えて

0

:このような

=check_box_tag('check_all', 'check_all', false, :onClick => "checkAll(document.admin_form.check_all, document.admin_form.checkbox);") 

とJS機能:どのような最終的には私のために働いたことは、このようにチェックボックスでした。私は実際にはjQueryと(最小限)Prototypeしか使用していません。だから、admin_formがフォーム要素を適切に選択していることを確認したいと思います。 jQueryでは、これは、以前に書いたすべてのjqueryピースのチェック/チェックボックスを変更しました。form[name="admin_form"]

うまくいけばそれは助けるかもしれない。まず、 "check_all"をクリックすると、すべてのチェックボックスがチェックされます。チェックボックスをクリックすると、「check_all」チェックボックスがオフになります。

$('#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'); } 
}); 
+2

<%= check_box_tag('check_all', 'check_all', false, :onClick => "checkAll(this);") %> 

このJavaScriptを使用しています。私の見解で

このコードは、Check(意図的にラベルなし)すべてのチェックボックスを作成します。上記の私の編集を参照してください – mtay

+1

ニース!私はより多くの人々がそのような作業ソリューションを投稿することを願っています。 –

0

元の質問に投稿された答えは、私は始まったが、私のチェックボックスがmessage_id[]命名されているので、私は問題に走りました。大括弧でJS構文エラーが発生していました。 this thread内のパターンに続き

は、私がて、フォーム上のすべてのの入力フィールドをループして、type="checkbox"を持つものに明示的に操作することでこの問題を回避ました。おかげ

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 ; 
     } 
    } 
    } 
} 
0
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) { 
     inputs[i].checked = check_all.checked ; 
    } 
    } 
} 
関連する問題