select下拉列选提示选中内容(选中内容太长)

页面:

<html:select property="timearea" style="width:200px" οnmοuseοver="selMouseOver(this)" οnmοuseοut="selMouseOut(this)"
              οnkeydοwn="catch_keydown(this)" οnkeypress="catch_press(this)" οnfοcus="catch_focus(this)">

js脚本:
function getEvent(){     //同时兼容ie和ff的写法
         if(document.all)    return window.event;       
         func=getEvent.caller;           
         while(func!=null){   
             var arg0=func.arguments[0];
             if(arg0){
                 if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
                     || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){   
                     return arg0;
                 }
             }
             func=func.caller;
         }
         return null;
 }


//定义 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)
{ var evt = getEvent();
with (document.getElementById("div_hint"))
{
 innerText = obj.options[obj.selectedIndex].text;
 if (innerText.length > 0) {
  innerHTML = " " + innerText + " ";
  style.display = "";
   var top = findOffsetTop(document.getElementById("ttd"));
   var left = findOffsetLeft(document.getElementById("ttd"))+document.getElementById("ttd").offsetWidth;
  style.left = left;
  style.top = top;
 }
}
}

//国家select 选择框鼠标上移时提示选择的内容
function selMouseOver1(obj)
{ var evt = getEvent();
with (document.getElementById("div_hint"))
{
 innerText = obj.options[obj.selectedIndex].text;
 if (innerText.length > 0) {
  innerHTML = " " + innerText + " ";
  style.display = "";
   var top = findOffsetTop(document.getElementById("ctd"));
   var left = findOffsetLeft(document.getElementById("ctd"))+document.getElementById("ctd").offsetWidth;
  style.left = left;
  style.top = top;
 }
}
}
function   findOffsetTop(o) {
 var   t   =   0;
 if (o.offsetParent) {
  while   (o.offsetParent) {
   t += o.offsetTop;
   o = o.offsetParent;
  }
 }
 return t;
}
function   findOffsetLeft(o) {
 var   t   =   0;
 if   (o.offsetParent) {
  while (o.offsetParent) {
   t += o.offsetLeft;
   o = o.offsetParent;
  }
 }
 return t;
}

//select 选择框鼠标移开时消失
function selMouseOut(obj)
{
with (document.getElementById("div_hint"))
{
 style.display = "none"
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值