在网页里面加上这一段也许可以解决:
<SCRIPT LANGUAGE="JavaScript" defer> <!-- var elms = document.getElementsByTagName("select"); for (var i=0;i<elms.length;i++) if (elms[i].type=="select-one") cover(elms[i]); function cover(s){ s.style.display="none"; s.onmouseout = hideSelect; s.onblur = hideSelect; s.onchange = resetSelectValue; var t = document.createElement("input"); t.style.width = s.style.width; t.value = s.options[s.selectedIndex].text; t.onmouseover = showSelect document.body.insertBefore(t,s) } function showSelect(){ var e = event.srcElement; e.style.display="none"; e.nextSibling.style.display="inline"; } function hideSelect(){ var e = event.srcElement; e.style.display="none"; e.previousSibling.style.display="inline"; e.blur(); } function resetSelectValue(){ var e = event.srcElement; e.previousSibling.value = e.options[e.selectedIndex].text e.blur(); } //--> </SCRIPT> 考虑到select上原来可能已经定义了onchange事件,上面的代码改为:
<SCRIPT LANGUAGE="JavaScript" defer> <!-- var elms = document.getElementsByTagName("select"); for (var i=0;i<elms.length;i++) if (elms[i].type=="select-one") cover(elms[i]); function cover(s){ s.onmouseout = hideSelect; s.onblur = hideSelect; if (s.onchange==null) s.onchange = resetSelectValue; else{ s.doOnchange = s.onchange; s.onchange = function(){this.doOnchange();resetSelectValue()} } var t = document.createElement("input"); t.style.width = s.offsetWidth; t.value = s.options[s.selectedIndex].text; t.onmouseover = showSelect document.body.insertBefore(t,s) s.style.display="none"; } function showSelect(){ var e = event.srcElement; e.style.display="none"; e.nextSibling.style.display="inline"; } function hideSelect(){ var e = event.srcElement; e.style.display="none"; e.previousSibling.style.display="inline"; e.blur(); } function resetSelectValue(){ var e = event.srcElement; e.previousSibling.value = e.options[e.selectedIndex].text e.blur(); } //--> </SCRIPT> |
|