日期:2014-05-17  浏览次数:20699 次

急!!! select中停留鼠标提示信息
jsp页面

下拉列选select中鼠标停留 显示提示信息为item值

------解决方案--------------------
HTML code
<HTML> 
<Head> 
<SCRIPT LANGUAGE="javascript">  

<!-- 
//定义 select 原值 
var oldValue,oldText; 
//select下拉框的onkeydown事件,修改下拉框的值 
function catch_keydown(sel) 
{ 
switch(event.keyCode) 
{ 
 case 13: //回车键 
  event.returnValue = false; 
  break; 
 case 27: //Esc键 
  sel.options[sel.selectedIndex].text = oldText; 
  sel.options[sel.selectedIndex].value = oldValue; 
  event.returnValue = false; 
  break; 
 case 8: //空格健 
  var s = sel.options[sel.selectedIndex].text; 
  s = s.substr(0,s.length-1); 
  if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text) 
  { 
  sel.options[sel.selectedIndex].value=s; 
  sel.options[sel.selectedIndex].text=s; 
  } 
  event.returnValue = false; 
  break; 
} 
if (!event.returnValue && sel.onchange) 
 sel.onchange(sel) 
} 

//select下拉框的onkeypress事件,修改下拉框的值 
function catch_press(sel){ 
if(sel.selectedIndex>=0){ 
var s = sel.options[sel.selectedIndex].text + String.fromCharCode(event.keyCode); 
if (sel.options[sel.selectedIndex].value==sel.options[sel.selectedIndex].text) 
{ 
 sel.options[sel.selectedIndex].value=s; 
 sel.options[sel.selectedIndex].text=s; 
} 
event.returnValue = false; 
if (!event.returnValue && sel.onchange) 
 sel.onchange(sel) 
} 
} 

//select下拉框的onfocus事件,保存下拉框原来的值 
function catch_focus(sel) { 
oldText = sel.options[sel.selectedIndex].value; 
oldValue = sel.options[sel.selectedIndex].value; 
} 

//恢复select下拉列表当前选中的值 
function LoadSelect(obj,value) 
{ 
for (var i=0; i< obj.options.length; i++) 
 if (obj.options[i].value == value) 
 { 
  obj.selectedIndex = i; 
  break; 
 } 
} 

//select 选择框鼠标上移时提示选择的内容 
function selMouseOver(obj) 
{ 
with (document.all.div_hint) 
{ 
 innerText = obj.options[obj.selectedIndex].text; 
 if (innerText.length > 0) 
 { 
  innerText = " " + innerText + " "; 
  style.display = "block"; 
  style.left = event.clientX + 16; 
  style.top = event.clientY; 
 } 
} 
} 

//select 选择框鼠标移开时消失 
function selMouseOut(obj) 
{ 
with (document.all.div_hint) 
{ 
 style.display = "none" 
} 
} 
//--> 
</SCRIPT> 
</Head> 
<Body> 
<!--调用--> 
<select style='width:130px;z-index:-1' name='tmpSel' onmouseover=selMouseOver(this) onmouseout=selMouseOut(this) onkeydown=catch_keydown(this) onkeypress=catch_press(this) onfocus=catch_focus(this)> 
<option value=''>aaa</option> 
<option value=''>bbb</option> 
<option value=''>ccc</option> 
</select> 

<!--提示块--> 
<div id=div_hint style="font-size:12px;color:red;display:none;position:absolute; z-index:2; top:200;background-color: #F7F7F7; layer-background-color: #0099FF; border: 1px #9c9c9c solid;filter:Alpha(style=0,opacity=80,finishOpacity=100);"></div> 
</Body> 
</HTML>

------解决方案--------------------
<select name="test" style="width:111px" >
<option>这是个很长很长的text</option>
<option>这是个很长很长的text</option>
<option>这是个很长很长的text</option>
</select>
<script>
var options=document.getElementsByTagName("option");
for(var i=0;i<options.length;i++)options[i].title=options[i].innerHTML;
</script>

firefox 里面肯定好使 IE不确定