2

Javascript を使用して複数選択ボックスから特定のオプションを非表示にする必要があります。私はjQueryを手に入れることができず、許可されていません。

もう 1 つのドロップダウン ボックスがあります。値の変更時に呼び出される js 関数を呼び出しています。js 関数は、ドロップダウン ボックスの値に基づいてオプションを非表示にする (削除しない) 必要がある別の複数選択オプション ボックスのオプションを制御します。

簡単なjs関数はありますか?

http://jsfiddle.net/zz3dg/

編集:試した

fastInternet.options[i].style.display = 'none';
fastInternet.options[i].style.visibility = 'hidden';

うまくいきませんでした:(

4

3 に答える 3

2

編集:

新しい提案:

作るのはどうだろうdisable

fastInternet.options[i].setAttribute("disabled", "disabled")

そして、次の CSS を使用して非表示にします。

select option[disabled] {
    display: none; /* worked in firefox*/
    visibility: hidden; /* worked in chrome*/
}

デモを見る

それは役立つかもしれません!

古い提案:

使ってみて

 fastInternet.remove(options[i])
于 2012-08-02T10:58:04.917 に答える
1

追加するdisplay:noneとうまくいきました。しかし、私はcssを介してそれを行いました。

例を作成しました。ここで確認してください

テストするためにクロムをインストールしないでください。しかし、私visibility:hiddenはうまくいくはずだと思います。

于 2012-08-02T11:09:55.323 に答える
1

jsFiddle リンクを使用してみましたが、そこにあるものの一部がメソッドの正常な動作を妨げていました。

いくつかの変更を加えましたが、完全に機能しています。

html:

<select id="option_two" multiple>        
  <option value="VOIP">VOIP</option>         
  <option value="BDS">BDS</option>          
  <option value="DMW">DMW</option>          
  <option value="IDTV">IDTV</option>          
  <option value="P3TR">P3TR</option> 
</select> 

Javascript:

 var fastInternet = document.getElementById('option_two');

 for ( var i = 0; i < fastInternet.options.length; i++) {
     var value = fastInternet.options[i].value;

     if(value == 'IDTV' || value == 'P3TR'){
        fastInternet.options[i].style.visibility = 'hidden';
     }
 }​

JsFiddle では、フレームワークが onLoad および No-Library(pure JS) に設定されていることを確認してください。クロムでは機能しました。しかし、私はIEでいくつかの問題を抱えています:/

于 2012-08-07T13:05:07.290 に答える