2010-12-03 9 views
0

私はすべてを選択するチェックボックスを持っています。jquery、checkbox他のチェックボックスでイベントを有効にしないすべてを選択

<script> 
     \$("input[name=asdf]").live(function() { 

... 
</script> 

は、私は、個々のチェックボックスの機能をトリガーするを選択し、すべてのチェックボックスを通して個々のチェックボックスをチェックする行為を考えたが、これは起きていない。

<br>DK Filtering : 
    <input type="checkbox" name="asdf" id="asdf" value="A" CHECKED>A 
    <input type="checkbox" name="asdf" id="asdf" value="B">B 
    <input type="checkbox" name="asdf" id="asdf" value="C_EVAL">CEval 
    <input type="checkbox" name="asdf" id="asdf" value="D_EVAL">DEval 
    <input type="checkbox" name="dkfilterall" id="dkfilterall" value="YES">Select All 
<br> 
    <script> 
    \$("input[name=dkfilterall]").click(function() { 
     if (\$('input[name=dkfilterall]').is(':checked')== true) 
     { 
      \$('input[name=asdf]').attr('checked', true); 
     } 
     if (\$('input[name=dkfilterall]').is(':checked')== false) 
     { 
      \$('input[name=asdf]').attr('checked', false); 
     } 
    });    
    </script> 

どこか後に、私はこの機能を持っています。

これを修正するには何が必要ですか?

おかげ ゴードン

+0

'$'の代わりに '\ $'を使用するとどうなりますか? – jball

+0

私はperlでプログラミングをやっています... – Gordon

答えて

2

あなたはボックスをチェックした後、あなたがそれらをトリガするために、それらに対応する.change()関数を呼び出す必要があります。

$('input[name=asdf]').attr('checked', true).change(); 

は、ここですべてのボックスをチェックしてから呼び出します(簡体字)working exampleですそれらのchange()機能。

+0

私はクリック機能しか持っていませんが、変更はありません。どのように私はクリック機能のために働くことができます – Gordon

+1

変更機能にあなたのクリック機能を変更します。 – Jason

0

チェックボックスが既にオンになっているかどうかをチェックしているので、clickイベントを呼び出すだけで機能がトリガーされます。すなわち

$("input[name=dkfilterall]").click(function() { 
     if ($('input[name=dkfilterall]').is(':checked')== true) 
     { 
      $('input[name=asdf]').click(); 
     } 
     if ($('input[name=dkfilterall]').is(':checked')== false) 
     { 
      $('input[name=asdf]').click(); 
     } 
    });  
1

あなたには、いくつかのイベント(クリックし、変更)をトリガしたい場合はあなたがそう.live('click', function() {});

0
  1. 、ライブのイベントタイプを指定する必要が手動でチェックボックスをチェックした後、あなたがtriggerを呼び出す必要がありますオブジェクトへの方法:あなたの例で

    $('input[name=asdf]').attr('checked', true) 
        .trigger("change"); // <-- this code added 
    
  2. あなたがのためのトリガをバインドするために使用liveメソッドを使用しようと静的で動的に作成された要素。それを正しく使用するには、コードは次のようにする必要があります

    $("input[name=asdf]").live("click", function() { 
        // Live handler called. 
    }); 
    

official jquery siteの詳細情報を参照してください。