0

以下のコードを使用して、ドロップダウン フィールドの特定のオプションを非表示にしています。

最初のラジオボタンをクリックすると機能するのに、他のラジオボタンでは機能しない理由に頭を悩ませていたので、別のラジオボタンをクリックした直後にドロップダウンを元のオプションにリセットする必要があることに気付きました。

私のアプリにはラジオ ボタン グループがあり、いくつかのラジオのグループをクリックすると、ラジオ ボタンの値に基づいて、以下の IF ステートメントの 1 つが実行されます。

デタッチ機能を使用した後、ドロップダウン フィールドを元の内容または完全な内容にリセットするにはどうすればよいですか?

私はこれらを試しましたが、うまくいきません:

$('#3547').find('option:first').attr('selected', 'selected'); 
document.getElementById('3547').selectedIndex = 0; 
document.getElementById('3547').reset();

コード:

var oldoptions = []; 
 if (typeVal == "Art")
         {      
             $('fieldset#section-417').show();
 thisval = 'Art -';
$("#3547").append(oldoptions);  
    oldoptions = $("#3547 option:not(:contains(" + thisval + "))").detach();
}
 if (typeVal == "Chrome")
         {      
             $('fieldset#section-417').show();
 thisval = 'Chrome -';
$("#3547").append(oldoptions);  
    oldoptions = $("#3547 option:not(:contains(" + thisval + "))").detach();
}
 if (typeVal == "Web")
         {      
             $('fieldset#section-417').show();
 thisval = 'Web -';
$("#3547").append(oldoptions);  
    oldoptions = $("#3547 option:not(:contains(" + thisval + "))").detach();
}

必要な機能の再明確化:

一部を除外する前にドロップダウンに元々あったすべてのオプションを復元したいので、例: ロード時、ドロップダウンには 12 個のオプションが含まれます。「ART」ラジオがチェックされている場合、ドロップダウンには 4 つの項目のみが表示されます。たとえば、別のラジオボタン「Chrome」をクリックすると、元の12個のオプションがドロップダウンに復元され、フィルターコードが再度実行できるようになります。

4

2 に答える 2

1

周囲のコードについてはわかりませんが、このスニペットからは、常に空の配列を割り当ててoldoptionsから選択に追加しているようです (つまり、実際には何も追加していません)。

于 2012-12-20T14:31:38.623 に答える
0

使用するオプションを選択するには:

.attr('selected', true)

CSS ID を数字で始めないでください。多分それはあなたのブラウザも混乱させます.

于 2012-12-20T14:28:09.023 に答える