選中optGroup后,下拉框失去焦點后selectIndex的值在此時還是0(當下拉框中有可選項時).只有在下拉框再次獲得焦點并失去焦點時selectIndex的值才真正的變為-1,所以簡單的在onblur判斷selectIndex是不行的,所以我們需要作一個中間的處理,然后判斷selectIndex,如果選中的optGroup則把selectIndex置為0.
當下拉框只有optGroup時默認是不選中任何項的,也就是空項,空項的selectIndex的也是-1,所以在這種情況下不能直接把selectIndex置為0(因為沒有option項),我不能設置為-1,那樣是沒有任何效果的,我們需要先向下拉框中添加一個option,把selectIndex設為0,然后再把selectIndex設為-1,再把新加的option刪除,因為原則上optGroup是不能選中的,所以把selectIndex設為-1時選中的將是一個空項。
具體代碼如下:
HTML HEAD TITLE New Document /TITLE /HEAD BODY SELECT id= sel onblur= ValidateElement(this); optgroup label= 1111 /optgroup /SELECT SELECT id= sel1 onblur= ValidateElement(this); optgroup label= 1111 option 12 /option option 23 /option option 34 /option /optgroup option aa /option option bb /option option cc /option /SELECT /BODY /HTML SCRIPT LANGUAGE= JavaScript function ValidateElement(obj) var t = obj.selectedIndex; obj.selectedIndex = -1; obj.selectedIndex = t; if(obj.selectedIndex == -1) if(obj.options.length 0) obj.selectedIndex = -1; obj.selectedIndex = 0; else opt = document.createElement( option opt.innerText = obj.insertAdjacentElement( beforeEnd ,opt); obj.selectedIndex = 0; obj.selectedIndex = -1; obj.options[0] = null; catch(e){}//-- /SCRIPT
以上就是關于html下拉框中optGroup標簽的一個bug修復的詳細內容,html教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答