2017-02-16 13 views
-2

私はいくつかのコード行を残しています。問題を解決できないので、私はあなたの助けを求めています。チェックボックスのステータスに基づいてラベルの色を変更します。

チェックボックス(フランス語とドイツ語)のステータスに基づいて、ラベルの色(id selectSubject)を変更したいとします。

<div id="chooseSubject" style="margin-bottom:24px;"> 
    <label id="selectSubject" class="form-control">Select your subject(s)</label> 
    <table style="width:auto;text-align:left;margin-bottom:1px;margin-top:13px" > 
     <tr>        
      <th style="font:inherit;padding-right:110px;"><input type="checkbox" id="french" style="display:none; position:absolute; left:9999px;"><label for="french"><span></span>French</label></th>    
      <th style="font:inherit;"><input type="checkbox" id="german" style="display:none; position:absolute; left:9999px;" class="1" value="1""><label for="german"><span></span>German</label></th> 
     </tr> 
    </table> 
</div> 

私は、CSSのソリューションに見ていたが、私はどのようにオペレーターの仕事を理解していない、など<として、>、〜、+ので、私は私の問題を解決することができませんでした。

チェックボックスが選択されていない場合、selectSubjectの色は変更されませんが、チェックされていれば色に変わります。

うまくいけば、これらの意味があります。ありがとうございます。

+1

cssのみを使用したい場合は、htmlがこのように構成されていると動作しません。チェックボックスは、ラベルの前に配置する必要があります。あなたはステータスをチェックし、それに応じてラベルを設定するためにjavascriptを使うことができます。 – deadfishli

+0

あなたの質問は理にかなっていません。どのように 'selectSubject'の色をラベルに適用できますか? – ProEvilz

+3

[チェックボックスをオンにした場合はハイライトラベル]の複製が可能です(http://stackoverflow.com/questions/5275857/highlight-label-if-checkbox-is-checked) –

答えて

0

jQueryのバージョンが

何をする必要があるとあなたのチェックボックスの変更イベントをキャプチャし、クラスをトグルです。

(それらがクリックされている場合は、CSSクラスを追加)

あなたはそうのようなjQueryを使ってこれを行うことができます。

$('#french').on('change', function() { 
    //When fench checkbox is ticked, add this class, or remove it 
    $('#selectSubject').toggleClass('add-red-color'); 
}); 
$('#german').on('change', function() { 
    //When german checkbox is ticked, add this class, or remove it 
    $('#selectSubject').toggleClass('add-green-color'); 
}); 

チェックこの作業DEMO

+0

ありがとうございました! – leveeee

+0

@leveeeeこれがあなたを助けてくれたら、答えを受け入れてください。さらなるヘルプが必要な場合は、あなたの投稿に更新を加えてください。 – ProEvilz

+0

さて、申し訳ありません、私はこのコミュニティには本当に新しく、いくつかのことを学ぶ必要がありますが、私はベストを尽くしています。もう一度ありがとう! – leveeee

0

私の最終的な解決策 - ProEvilzの回答に基づいて。

    var french = document.getElementById('french'); 
        var german = document.getElementById('german'); 
        var cbs = document.querySelectorAll('input[type=checkbox]'); 
        for(var i = 0; i < cbs.length; i++) { 
         cbs[i].addEventListener('change', function() { 
         if(german.checked || french.checked) { 
          document.getElementById("selectSubject").style.color = "black"; 
         } else { 
          document.getElementById("selectSubject").style.color = "#A9A9A9"; 
         } 
         }); 
        } 
関連する問題