2012-04-23 18 views
3

私は選択されたチェックボックスを取得する最も簡単な方法を見つけようとしています。私はこのラインif ($("#cbSolid", "#cbOutline").is(':checked') == true)についてはよく分からないか、私はそれが働いて得るためにbindを使用する必要がありますjqueryを使用して複数のチェックボックスを選択する

<input type="checkbox" name="chkTextEffects" id="cbSolid" value="Solid" />Solid 
    <input type="checkbox" name="chkTextEffects" id="cbOutline" value="Outline" />Outline 
    <input id="TextEffectsSelection" type="hidden" /> 

$(document).ready(function() { 
    $("input[name='chkTextEffects']").change(function() { 
     if ($("#cbSolid").is(':checked') == true) { 
      alert('Solid'); 
     } else if ($("#cbOutline").is(':checked') == true) { 
      alert('Outline'); 
     } else if ($("#cbSolid", "#cbOutline").is(':checked') == true) { 
      alert('SolidOutline'); 
     } else if ($("#cbSolid", "#cbOutline").is(':checked') == false) { 
      alert('No Effects'); 
     } 
    }); 
});​ 

HTML:

は、ここに私のスクリプトです。

+0

あなたはラジオボタンの動作を模倣するために、チェックボックスを使用しているように、それが見えます。あなたのif/else ifステートメントは、あなたが選択した単一の要素だけを探していることを確認しているようです。代わりにラジオボタンを使用することをお勧めします。 –

+0

@ DanA-いいえ、私は両方の要素を選択し、時には1つにすることもできます。それに基づいて、私はチェックされたものを取得する必要があります。 – coder

答えて

7

は、私はそれが何を示して作成した例であるが私はあなたが達成しようとしていると思います:

$('#getCheckboxesButton').live('click', function(event) { 
    var checkboxValues = []; 
    $('input[type="checkbox"]:checked').each(function(index, elem) { 
     checkboxValues.push($(elem).val()); 
    }); 
    alert(checkboxValues.join(', ')); 
}); 

それが役立つかどうか教えてください。

基本的に ':checked' jQueryセレクタを使用して、チェックされたチェックボックスを取得し、その値を反復して出力します。あなたのデモに基づいて

+0

@ SuperPomodoro - はい、これは私が必要とするものです。喜んで: – coder

+0

さらに、チェックされていないチェックボックスを検索するには:notセレクタを使用できます。 jQueryセレクタ(および新しいCSS3擬似セレクタ)は、エレガントなDOMクエリを可能にします。修辞的な質問; – SuperPomodoro

+0

;あなたはこの質問から完全な解決に至りましたか?LOL – Craig

0

なぜこれません。

$("#checkboxId").attr("checked") == "checked"; 
3

あなたはすべての指定された名前のチェックボックスをチェックし取得するには、このよう:checkedセレクタを使用することができます:ここで

$("input[name='chkTextEffects']:checked") 
関連する問題