您可以設置onclick
事件的<select>
到return false
:
<input name="radiogroup" id="x" type="radio">
<label for="x">
test
<select onclick="return false">
<option value="5">5</option>
<option selected="selected" value="10">10</option>
<option value="15">15</option>
</select>
</label>
這工作,因爲製作onclick
事件返回false保持默認瀏覽器行爲發生,而對於Internet Explorer,默認瀏覽器行爲是您不需要的行爲,即在用戶打開它後立即關閉下拉列表。
請注意,如果你想要的默認瀏覽器的行爲發生了其他瀏覽器比IE瀏覽器,你可以使用JavaScript來測試,如果Internet Explorer瀏覽器,只返回false如果Internet Explorer瀏覽器(這樣做的方法這個來自this answer):
function browserIsIE(){
if(!!navigator.userAgent.match(/Trident/g) || !!navigator.userAgent.match(/MSIE/g)){
return true;
}
else{
return false;
}
}
<input name="radiogroup" id="x" type="radio">
<label for="x">
test
<select onclick="if(browserIsIE()){return false}">
<option value="5">5</option>
<option selected="selected" value="10">10</option>
<option value="15">15</option>
</select>
</label>
的JavaScript代碼可以做了很多更優雅,但我沒有爲清楚起見這樣做。
請注意,我測試過在Chrome,Firefox和邊緣兩個代碼和代碼都正好有這三個瀏覽器相同的行爲,所以你可以使用任你挑選上面的代碼。
你可以閱讀更多有關使用return false
與事件here。
你說的「不工作」的意思。你有錯誤嗎?請解釋。 – phil652
這與JavaScript有什麼關係?請指定並顯示您的JavaScript代碼或刪除「javascript」標記。 CSS的同上。 –
@ phil652我只是測試它,不工作的事情是,當您試圖展開下拉,下拉菜單會自動關閉。但我同意OP應該在問題中提到這一點。語音的 –