首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
ASP | ASP.NET | JSP | PHP | AJAX | XML | Java script | HTML/CSS | 服务器类
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> WEB开发 >> WEB开发 >> 正文
ASP实现可输入下拉列表的实现方法
ChinaItLab  2007-10-8  保存本文  佚名  收藏本站

         闲话:每次作到有默认又可以自定义的表单时,就开始头痛。又是输入框又是下拉框的,先不说用户在用时会不会晕,自己看了都头晕。一直在幻想有没一个象VB里的下拉框一样,又能输入又能选择的。以前从网上找了不少这方面的用js的组合,一堆js代码是一定了,但是使用麻烦,效果不怎么样,而且还很消耗客户端的资源。两天前在google处看到一个很cool的能输入下拉框组合。曾想拿过来用,但是Google的js程序员太牛气了,光一个js类洋洋洒洒写了一大篇。想从中抽出需要的代码,那简直是大海里捞针,一激之下,仿了一个,以下是运行原理和原码。
 正文:
  参与插件:
    select(下拉框:默认display:none)×1,text(文本框)×1,主div(层)×1,辅div(层)×n
  原理:
  text.onfocus事件中从select中读取option项以一个option一个div的方式将option项加载到div内,并将div定位到text的下面,并同步div和text的宽度,然后div显示,激活select隐藏函数,将div覆盖到的select的visibility属性全设置为hidden(因为在IE中div是遮不住select的),同时向text加载各种必要的事件,确保能及时的作出反应。
  text.onclick加载与onfocus一样的函数,可以确保用户的重复使用。
  text.onkeyup加载匹配功能,用户在文本框内输入资料时自动匹配相符合的option项。
  text.onblur判断操作真的结束后(m_intTextSelectIn=true)将div.display设置为none使div隐藏,并激活select显示函数,将一开始被隐藏的select显示出来。
  主div.onmouseout将m_intTextSelectIn设置为false锁定结束标识,并将焦点赋给text,避免鼠标未作选择,但已经离开了文本框和主div。
  主div.onmouseover将m_intTextSelectIn设置为true释放被锁定的结束标识
  辅div.onmouseover修改当前div的背景,表示鼠标正处于该div上方。
  辅div.onclick将m_intTextSelectIn设置为true释放被锁定的结束标识,并将outerText赋值给text.value。最后将焦点赋给text,然后再blur将焦点弹开(本操作在Firefox里提示出错,但不影响使用),激活text.onblur事件。
  以上即时这个下拉输入框的工作基本原理。还有一些小细节,如主div超出限定长度后会出现下拉框,主div的命名之类的。还有特别注明一下代码里的getPosition、HideOverSels、Obj1OverObj2均出至51js版主宝玉大侠之手,特此鸣谢。^^
  以下是作好的js代码,给有需要的朋友:
/*---------------------------------textselect.js--------------------------------------------------*/
var m_strTextselectDiv="Textselectshow_Div"
var m_intTextSelectIn=false
var ie=(document.getElementById && document.all);
for(var IDx=0,IDy=’’;document.getElementById(m_strTextselectDiv)!=null;IDx++,IDy=IDx){
 m_strTextselectDiv=(document.getElementById(m_strTextselectDiv + IDy)==null)?m_strTextselectDiv + IDy:m_strTextselectDiv
}
document.write (’<div id="’ + m_strTextselectDiv + ’" style="position: absolute;cursor: default;border: 1px solid #B2B2B2;background-color: #fff;display: none;"></div>’)
// 获取对象的坐标
function getPosition(Obj) 

[1] [2] [3] 下一页

中国IT教育热线咨询
相关文章
asp根据表单自动生成sql语句的函数
ASP连接11种数据库的语法总结
教你优化你的ASP程序
asp去除HTML标记的三个实用函数
ASP添加验证码的解决方法
最新文章
·PHP正则表达式从url中取得域名
·php设计模式介绍之迭代器模式
·简单学习php遇到的主要问题
·asp根据表单自动生成sql语句的函
·雅虎选项卡特效
 文章评论

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
ASP.NET ASP PHP JSP
·extjs ComboBox联动下拉菜单示例08-01
·漫谈.Net开发关于命名空间和目录划分07-31
·在Silverlight应用程序中操作Cookie07-28
·带附加条件的NewID()用法(downmoon)07-28
·对自定义路由进行单元测试07-28
·javascript实现yield07-28
·在ASP.NET中使用Google Maps07-28
·Sql Server2005 实现Oracle10g的hash表分区功07-28
·asp.net get set用法07-26
·Asp.net 控件开发—数据回传07-26
·接口vs. 的实体类07-26
·php设计模式介绍之迭代器模式08-02
·简单学习php遇到的主要问题08-02
·asp根据表单自动生成sql语句的函数08-02
·教你优化你的ASP程序03-07
·asp去除HTML标记的三个实用函数03-07
·ASP添加验证码的解决方法03-07
·ASP通用文章分页函数:非记录集分页03-07
·ASP教程基础:十天学会ASP第三天03-07
·ASP教程基础:十天学会ASP第二天03-07
·ASP教程基础:十天学会ASP第一天03-07
·能够生成google xml地图的asp源码03-06
·Linux系统下让PHP提高性能的工具APC05-06
·一个完整、安全的PHP用户登录系统11-14
·Apache+PHP+MySQL建立数据库驱动的动态网站08-24
·用SSH与PHP相连接 确保数据传输的安全性08-23
·PHP5手动最简安装方法08-03
·PHP程序加速探索之服务器负载测试07-11
·完全讲解PHP+MySQL的分页显示示例分析05-30
·用Suhosin加强PHP脚本语言安全性05-26
·初学入门 PHP 和 MySQL05-17
·传奇的诞生 PHP三位创始人简介05-10
·大型系统上PHP令人不爽的九大原因05-10
·ASP.NET和PHP、JSP究竟学哪个?07-30
·JAVA (Jsp)利用Google的Translate开发API07-29
·由Servlet获得FacesContext及ManagedBeans07-24
·用JOTM向Servlet中添加事务07-18
·用servlet生成验证码07-16
·JSP/Servlet伪静态网页实现07-08
·JSP和Servlet的关系浅谈06-15
·妙用异步Servlet扩展AJAX应用程序06-11
·servlet生成验证码图片06-02
·java.servlet.Filter的应用05-30
·Java程序员必看--扩展鼠标右键菜单功能05-13
  培训中心
人才交流中心 技术交流中心
  ITLab技术交流平台: