2012-02-26 21 views
0

まず、HTMLを選択:は追加/ラジオに基づいて、ドロップダウンリストの項目を削除

<input type="radio" name="selectrad" class="rad" data-min="2" /> 
<input type="radio" name="selectrad" class="rad" data-min="5" /> 

<select name="minimum" class="minimum"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="8">8</option> 
    <option value="9">9<option> 
    <option value="10">10</option> 
</select> 

私はデータ分」の値に基づいて、ドロップダウンメニューからオプションを追加または削除されてやろうとしてきました'ラジオボタンをクリックします。したがって、 'data-min'に5が含まれる場合は、オプション5-10だけが表示されます。私は2つの違いを見いだし、その方法を追加したり引いたりしてみました。

私はfor (i=0; i<min; i++)をループし、htmlを置き換えるだけでラジオの価値をつかむという簡単な方法を避けようとしています。このコードはできるだけ高速で効率的でなければなりません。

+0

を非表示にすることでしょうか?ラジオボタンのdata-min属性の値がselectリストのオプションとどのように関係しているかを説明する必要があります。また、あなたがすでに持っているコード(たとえそれがうまくいかなくても)を含めて、何も含まないよりも優れています。 –

+0

オプションのループにはわずか数ミリ秒かかりますが、これは問題にはなりません。 – Teemu

+0

価値があることについては、あなたが望むところまでコンテンツをループして生成するよりも良い方法があるかどうかはわかりません。私はループして、より多くのエントリーでコンテンツを生成しましたが、決して私に問題を与えませんでした。 –

答えて

1

以下のようなヘルプがありますか?あなたの条件に基づいて追加できる基本コード。データ-minが2である場合、3〜10のすべてが非表示になり、そしてそれにその「5」、5の前にすべてが正確に、どのようにデータ-minの値に基づいて

   $(document).ready(function(){ 
      $("input[name='selectrad']").click(function(){ 
       // console.log($(this).attr("data-min")); 
       if($(this).attr("data-min") === '2'){ 
        $(".minimum").find("option").show(); 
        var min = $(".minimum").find("option:gt(1)"); 
        min.hide(); 
       } else { 
        $(".minimum").find("option").show(); 
        var max = $(".minimum").find("option:lt(4)").hide(); 
        max.hide(); 
       } 
      }) 
     }) 
+0

ありがとうございました!私はあなたの答えを少し修正しました。それは、削除する必要がある数よりも少ない数にする必要があったからです。 –

関連する問題