2012-08-02 53 views
2

我需要使用Javascript隱藏多選框中的某些選項。我無法獲得jQuery,我不被允許。隱藏多選框中的選項

我還有一個下拉框,我打電話給一個js函數,這個函數會在值被改變時被調用。 js函數將控制另一個多選選項框的選項,我需要根據下拉框的值隱藏(不刪除)選項。

任何簡單的js函數?

http://jsfiddle.net/zz3dg/

編輯: 試圖

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

沒有工作:(

+1

看看這篇文章幫助: 的http://計算器。com/questions/2731668/how-to-hide-optgroup-option-elements – Clayton 2012-08-02 10:57:43

+0

沒有任何工作。任何人都可以在這裏寫完整的Js。我正在爲每一個出現無法解決的新線程而煩惱。 – Reddy 2012-08-03 12:24:29

回答

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和任何─庫(純JS) 在鉻它的工作。但我得到了在IE瀏覽器的一些問題,但:/

+0

這是問題。IE是我的拳頭偏好,我需要使它適用於IE。 – Reddy 2012-08-08 05:24:59

+0

@Nitin最接近我解決你的問題是這樣的:http://jsfiddle.net/BMs8D/4/ – Clayton 2012-08-08 07:16:49

2

編輯:

新建議:

關於什麼使它disable

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

,然後隱藏它通過使用下面的CSS:

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

SEE DEMO

可能有幫助!

OLD建議:

嘗試使用

fastInternet.remove(options[i]) 
+0

刪除將從下拉列表中刪除選項,這不應該發生。它應該只是隱藏在某些條件下,並且對其他條件應該是可見的 – Reddy 2012-08-02 10:59:04

+0

@Nitin Gurram:如何使其「禁用」,更新了我的答案。 – 2012-08-02 11:05:57

+0

不用,只需禁用IE8中的選項 – 2012-08-02 11:56:28

1

添加display:none爲我工作。但我通過CSS做到了。

已建立示例。檢查它here

沒有安裝chrome來測試。但我猜visibility:hidden應該工作。

+0

沒有奏效。 – 2012-08-02 11:21:07

+0

也沒有在IE 8中工作! :( – Reddy 2012-08-02 11:54:04