当前位置: 首页 > news >正文

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"
}
}

相关文章:

  • javamail发送邮件
  • struts实现的图片的上传和下载
  • JavaMail无法连接SMTP25端口问题
  • Project property XFire services.xml path does not refer to a valid file解决办法
  • 控制fckeditor文本长度
  • 有关hibernate配置
  • js代码总结
  • url中的jsessionid
  • 精妙SQL语句
  • Tomcat及MySQL服务配置
  • document.referrer 用法
  • ssh框架有关数据源的配置
  • java解析xml的四种方法
  • double类型的数字变为汉字(金额)
  • 特长的string从一行变多行
  • es的写入过程
  • ES学习笔记(12)--Symbol
  • httpie使用详解
  • k个最大的数及变种小结
  • Linux快速复制或删除大量小文件
  • mysql innodb 索引使用指南
  • Netty 4.1 源代码学习:线程模型
  • React Native移动开发实战-3-实现页面间的数据传递
  • Redux 中间件分析
  • Shell编程
  • Unix命令
  • Xmanager 远程桌面 CentOS 7
  • 半理解系列--Promise的进化史
  • 你真的知道 == 和 equals 的区别吗?
  • 漂亮刷新控件-iOS
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 国内开源镜像站点
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (六)c52学习之旅-独立按键
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (顺序)容器的好伴侣 --- 容器适配器
  • (四) Graphivz 颜色选择
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)可以带来幸福的一本书
  • (转)详解PHP处理密码的几种方式
  • .gitignore
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net 程序发生了一个不可捕获的异常
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET命名规范和开发约定
  • ??在JSP中,java和JavaScript如何交互?
  • @Autowired多个相同类型bean装配问题
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • []FET-430SIM508 研究日志 11.3.31