2017-04-18 63 views
1

HTML代碼來測試IE:標籤標記有選擇下拉菜單中,不IE11工作

<input name="radiogroup" id="x" type="radio"> 
 
<label for="x"> 
 
    test 
 
    <select> 
 
     <option value="5">5</option> 
 
     <option selected="selected" value="10">10</option> 
 
     <option value="15">15</option> 
 
    </select> 
 
    </label>

這是一個示例代碼

+2

你說的「不工作」的意思。你有錯誤嗎?請解釋。 – phil652

+2

這與JavaScript有什麼關係?請指定並顯示您的JavaScript代碼或刪除「javascript」標記。 CSS的同上。 –

+0

@ phil652我只是測試它,不工作的事情是,當您試圖展開下拉,下拉菜單會自動關閉。但我同意OP應該在問題中提到這一點。語音的 –

回答

0

嘗試移動選擇標記外的標籤標籤。

<input name="radiogroup" id="x" type="radio"> 
 
<label for="x"> 
 
    test 
 
</label> 
 
<select> 
 
    <option value="5">5</option> 
 
    <option selected="selected" value="10">10</option> 
 
    <option value="15">15</option> 
 
</select>

+0

櫃面以上(無障礙),它不會讀取的單選按鈕選擇的下拉值。我只會閱讀**測試**而不是**測試10 **。對於所有瀏覽器,原始代碼的聲音效果都很好。 –

0

您可以設置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