2

我需要使用 Javascript 从多个选择框中隐藏某些选项。我不能使用 jQuery,我也不允许这样做。

我还有一个下拉框,我正在调用一个 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做到的。

已经建立了一个例子。在这里检查

没有安装 chrome 来测试。但我想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) 在 chrome 中它可以工作。但是我在 IE 中遇到了一些问题:/

于 2012-08-07T13:05:07.290 回答