2017-02-06 13 views
0

ブロンズ、シルバー、ゴールドの3つの選択肢があります。誰かがチェックボックスオプションの1つをクリックすると、適切なif文のオプションに基づいてselectの結果が異なるようにしたいと思います。その後、その人がhtmlに値を送ることができるようになると、その人が選択して選択します。異なるチェックボックスの選択肢を使ってオプション入力を変更する

現在のところ、どのオプションをチェックしても、#top-bronze:checkedオプションが表示されるだけです。ただし、これは何らかの理由でスニペットに表示されません。

チェックされた結果に基づいて正しいオプションを表示するには、何が必要なのですか?

function tpYears() { 
 

 
     if ('#tp-bronze:checked') { 
 
     $("#tp-frequency").html("<option value=''disabled selected>Please choose option</option><option value='3'>3 years - 3 cards</option><option value='4'>2 years - 4 cards</option><option value='2'>5 years - 2 cards</option>"); 
 
     } else if ('#tp-silver:checked') { 
 
     $("#tp-frequency").html("<option value=''disabled selected>Please choose option</option><option value='5'>3 years - 5 cards</option><option value='3'>5 years - 3 cards</option><option value='2'>7 years - 2 cards</option>"); 
 
     } else if ('#tp-gold:checked') { 
 
     $("#tp-frequency").html("<option value=''disabled selected>Please choose option</option><option value='7'>3 years - 7 cards</option><option value='4'>5 years - 4 cards</option><option value='3'>7 years - 3 cards</option>"); 
 
     } 
 
     var templates = $('#tp-frequency option:selected'); 
 
    }; 
 
    tpYears();
<label for="tp-bronze" class="package-check-toggle tp-package-push">Bronze 
 
</label> 
 
<input type="checkbox" class="tp-pack-check" id="tp-bronze" value="Bronze Touch Point Package"> 
 
<label for="tp-silver" class="package-check-toggle tp-package-push">Silver 
 
</label> 
 
<input type="checkbox" class="tp-pack-check" id="tp-silver" value="Silver Touch Point Package"> 
 
<label for="tp-gold" class="package-check-toggle tp-package-push">Gold 
 
</label> 
 
<input type="checkbox" class="tp-pack-check" id="tp-gold" value="Gold Touch Point Package">

+0

あなたの文の文字列は、 – T0t3sMcG0t3s

答えて

1

サラウンドのif-else $()と内部状態。また、ブローfirstsecond条件のように、チェックボックスのchecked状態を確認するために小道具を使用することができます

$(function(){ 
 
    $('input[type="checkbox"]').on('change', function() { 
 
     if ($('#tp-bronze').prop('checked')) { 
 
     $("#tp-frequency").html("<option value=''disabled selected>Please choose option</option><option value='3'>3 years - 3 cards</option><option value='4'>2 years - 4 cards</option><option value='2'>5 years - 2 cards</option>"); 
 
     } else if ($('#tp-silver').prop('checked')) { 
 
     $("#tp-frequency").html("<option value=''disabled selected>Please choose option</option><option value='5'>3 years - 5 cards</option><option value='3'>5 years - 3 cards</option><option value='2'>7 years - 2 cards</option>"); 
 
     } else if ($('#tp-gold:checked')) { 
 
     $("#tp-frequency").html("<option value=''disabled selected>Please choose option</option><option value='7'>3 years - 7 cards</option><option value='4'>5 years - 4 cards</option><option value='3'>7 years - 3 cards</option>"); 
 
     } 
 
     var templates = $('#tp-frequency option:selected'); 
 
    
 
    
 
    }) 
 
}) 
 
    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<label for="tp-bronze" class="package-check-toggle tp-package-push">Bronze 
 
</label> 
 
<input type="checkbox" class="tp-pack-check" id="tp-bronze" value="Bronze Touch Point Package"> 
 
<label for="tp-silver" class="package-check-toggle tp-package-push">Silver 
 
</label> 
 
<input type="checkbox" class="tp-pack-check" id="tp-silver" value="Silver Touch Point Package"> 
 
<label for="tp-gold" class="package-check-toggle tp-package-push">Gold 
 
</label> 
 
<input type="checkbox" class="tp-pack-check" id="tp-gold" value="Gold Touch Point Package"> 
 
<select id="tp-frequency"></select>

+0

)$(に包まれたこのことは、中表示何につながるされていない場合私の選択ボックスとあなたのスニペットで何もチェックして同じ選択肢が表示されますか? – Paul

+0

これを修正しました。これは、関数tpYearsが一度だけ呼び出されたためです。チェックボックス状態の変更時にその関数を実行する必要があります。しかし、今度は、2つのチェックボックスをチェックすると、より低い値のものが優先されますが、必要に応じていつでもロジックを変更できます。 –

+0

なぜ私は関数名を実行できないのですか? – Paul

関連する問題