2012-11-13 49 views
-2

我想隱藏使用JavaScript的下拉菜單。以下代碼我已經在Firefox和Chrome中工作,但在IE 8中進行測試無法正常工作。在IE中隱藏選擇框?

<select name="month" id="month" onchange="monthselector_changed(this)"> 
    <option value="1"> 
     Jan</option> 
    <option value="2"> 
     Feb</option> 
    <option value="3"> 
     Mar</option> 
    <option value="4"> 
     Apr</option> 
    <option value="5"> 
     May</option> 
    <option value="6"> 
     Jun</option> 
    <option value="7"> 
     Jul</option> 
    <option value="8"> 
     Aug</option> 
    <option value="9"> 
     Sep</option> 
    <option value="10"> 
     Oct</option> 
    <option selected value="11"> 
     Nov</option> 
    <option value="12"> 
     Dec</option> 
    </select> 

我然後隱藏使用它下面的代碼

document.getElementById("month").style.display = 'none'; 

只是爲了clarfication我試圖隱藏,然後整個選擇框不是一種選擇。

+1

你真的應該考慮像jQuery框架。 – Iznogood

+0

它的工作原理在這裏.. [小提琴](http://jsfiddle.net/772Z2/1)IE8 –

回答

1

$是一個ID字段無效,所以這可能是搞亂了IE瀏覽器,而其他的browers正在更「輕鬆」有關規定。

看到這個線程的詳細信息: What characters are allowed in DOM IDs?

編輯:我看到你在傳遞到this函數調用。您可以使用this在沒有ID的情況下進行切換。例如:

http://jsbin.com/acisof/1/edit

function monthselector_changed(elem) 
{ 
    elem.style.display = 'none'; 
} 
+0

的ID是不是造成問題的原因,爲測試我改成了一個月,做的document.getElementById(「月」)。我已更新上述問題以顯示此內容。 – Halfwarr

+0

然後檢查JS控制檯是否有錯誤。 F12。我的猜測是有一個錯誤。 –

+0

沒有錯誤,對於.jsp如何處理頁面而言有點奇怪。將其設置爲style.visibility ='hidden';爲IE工作。在控制檯中,我實際上只是運行了document.getElementById(「month」)。style.display ='none';.這導致它消失,但第二次點擊頁面後,它又可以看到。只發生在IE中,將隱藏的可見性設置爲隱藏。 – Halfwarr