`
JasonChi
  • 浏览: 91988 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

可输入且提示的select选择框

 
阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
   <style>   
   .optionDiv    {    border:1px    solid    black;border-top:0px;position:absolute;visibility:hidden;}   
   .optionDiv    div    {    font-size:11px;font-family:Tahoma;padding-left:8px;line-height:160%;cursor:default;width:100%;}   
</style>

<script type="text/javascript">  


   var    optionDiv    =    document.createElement("div");   
  function createselectelements(obj,arr){
  
   var    oWhere    =    document.body;   
   //设置下拉菜单选项的坐标和宽度   
   with(optionDiv.style)    {    
    var    xy    =    getSelectPosition(obj);   
    pixelLeft    =    xy[0];   
    pixelTop    =    xy[1]+obj.offsetHeight;   
    width    =    obj.offsetWidth;   
    optionDiv.className    =    "optionDiv";   
   }   
   //下拉菜单内容   
   var    val1=obj.value;
   var    optionsindexs=0;
   for(var i=optionDiv.childNodes.length;i>0;i--){
       optionDiv.removeChild(optionDiv.childNodes[i-1]);
   }
   var    Options    =    new    Array();   
   for    (var    i=0;i<arr.length;i++)    {     
    if(arr[i].indexOf(val1)==0){  
       Options[optionsindexs]    =    optionDiv.appendChild(document.createElement("div")); 
       Options[optionsindexs].innerText= arr[i];   
       optionsindexs++;
    }  
   }   
   //移动Option时的动态效果   
   for (i=0;i<Options.length;i++)    { 
   if (document.all)
   {
    Options[i].attachEvent("onmouseover",function(){moveWithOptions("highlight","white")});   
    Options[i].attachEvent("onmouseout",function(){moveWithOptions("","")});   
    Options[i].attachEvent("onmouseup",function(){selectedText(obj)});   
   }else
   {
   Options[i].addEventListener("mouseup",function(){selectedText(obj)},false); 
   Options[i].addEventListener("mouseout",function(){moveWithOptions("","")},false);
    Options[i].addEventListener("mouseover",function(){moveWithOptions("highlight","white")},false);   
	
       
      
   }
   
   }  
   oWhere.appendChild(optionDiv);   
  }
   optionDiv.onselectstart    =    function()    {return    false;}   
   
   function showOptions(obj,selected){
 var    arr =new Array();  
 for(var i=0;i<selected.options.length;i++){
 alert(selected.options[i].name);
   arr[i]=selected.options[i].value;
 }
     createselectelements(obj,arr);
  if(optionDiv.childNodes.length==0){
     optionDiv.style.visibility    =    "hidden";
  }else{
      optionDiv.style.visibility  = "visible"; 
     }
    }

   document.onclick    =    function()    {   
    optionDiv.style.visibility    =    "hidden";
   }  

   function    moveWithOptions(bg,color)    {   
    with(event.srcElement)    {   
     style.backgroundColor    =    bg;   
     style.color    =    color;   
    }   
   }   
   function    selectedText(obj)    {   
    with(event.srcElement)    {   

      obj.value    =    innerText; 
    }   
       optionDiv.style.visibility =  "hidden"; 
   }   
   /*通用函数*/   
   //获取对象坐标   
   function    getSelectPosition(obj)    {   
    var    objLeft    =    obj.offsetLeft;   
    var    objTop    =    obj.offsetTop;   
    var    objParent    =    obj.offsetParent;   
    while    (objParent.tagName    !=    "BODY")    {   
     objLeft    +=    objParent.offsetLeft;   
     objTop    +=    objParent.offsetTop;   
     objParent    =    objParent.offsetParent;   
     }   
    return([objLeft,objTop]);   
   }   
</script>
 </head>

 <body>
 


<select name="selectmenu" id="selectmenu" style="visibility:hidden"     onChange="document.getElementById('dmtxt').value=this.options[this.selectedIndex].name" >
<option value="">选择邮箱</option>
<option value="sina.com">www.sina.com</option>
<option value="sohu.com">www.sohu.com</option>
<option value="tom.com">tom.com</option>
<option value="126.com">126.com</option>
<option value="163.com">163.com</option>
<option value="yahoo.com.cn">yahoo.com.cn</option>
<option value="kingsoft.com">kingsoft.com</option>
</select>
<input name="dmtxt"  id ="dmtxt" type="text" value="" oninput="showOptions(this,document.getElementById('selectmenu'));" onMouseOver="this.select();this.focus();" style="">

<select name="selectmenu" id="selectmenu" style="visibility:hidden"     onChange="document.getElementById('dmtxt').value=this.options[this.selectedIndex].name" >
<option value="">选择邮箱</option>
<option value="sina.com">sina.com</option>
<option value="sohu.com">sohu.com</option>
<option value="tom.com">tom.com</option>
<option value="126.com">126.com</option>
<option value="163.com">163.com</option>
<option value="yahoo.com.cn">yahoo.com.cn</option>
<option value="kingsoft.com">kingsoft.com</option>
</select>
<input name="dmtxt"  id ="dmtxt" type="text" value="" oninput="showOptions(this,document.getElementById('selectmenu'));" onMouseOver="this.select();this.focus();" style="">
 <script>
 </script>
 </body>

</html>

分享到:
评论

相关推荐

    js实现input输入框输入信息后出现下拉选择框

    js实现input输入框输入信息后出现下拉选择框,下拉框的数据源可以使根据输入的值从数据库中动态获取

    可输入的html下拉列表框,自带筛选

    此框下拉列表框可输入,可根据输入内容自动过滤模糊查询到的option值,点击弹框下拉列表框,选择完毕后下拉列表框自动隐藏,非常好用

    飞飞模仿google下拉提示框输入框.rar

    软件介绍 此小程序是模仿Google(sgguest)输入提示框所编写 亦可用于用户注册邮箱时的提示 此程序使用方便简单、易用灵活 且不限Asp、php、net 更新说明: 1.支持xhtml 2.兼容IE6,IE7,FF 3.支持input显示与...

    Axure交互原型Web组件库 完整版v1.rp

    日期选择框 DatePicker 常用日期选择框 日期范围选择框 滑动输入条 Slider 常用滑动输入条 上传 Upload 常用上传组件 图片上传组件 表单 Form 注册登录表单 注册表单 其它常用表单 信息反馈 ...

    jQuery模糊搜索框下拉选择代码

    jQuery模糊搜索框下拉选择代码是一款模糊搜索组件,点击搜索框文本下拉框提示效果。

    javascript实现下拉提示选择框

    本文介绍了select和sugget结合起来使用的例子,支持下拉的直接选择,也支持在下拉内容中输入过滤。 整体效果就是下面这样的:   1、首先需要引入如下文件 &lt;link href="select2.min.css" rel="stylesheet" /&...

    网页下拉框智能诱导输入用户只要输入下拉框选项每字的第一五笔或者拼音码,诱导框就会将最先匹配的n条记录

    * 2)用户只要输入下拉框选项每字的第一五笔或者拼音码,诱导框就会将最先匹配的n条记录 * (这个参数可以配置,由MAX_MATCH_COUNT来指定),显示在弹出框(窗口大小可以通过POPUP_WIDTH, * POPUP_HEIGHT参数设置)中...

    Ajax 模仿google百度提示输入框 v1.8

    此小程序是模仿Google(sgguest)输入提示框所编写 亦可用于用户注册邮箱时的提示 此程序使用方便简单、易用灵活 且不限Asp、php、net 更新说明: 1.支持xhtml 2.兼容IE6,IE7,FF 3.支持input显示与value分离【以隐藏...

    ajax模仿google提示输入框(兼容ff)

    此程序是模仿Google(sgguest)输入提示框所编写 亦可用于用户注册邮箱时的提示 此程序使用方便简单、易用灵活 且不限Asp、php、net 更新说明: 1.支持xhtml 2.兼容IE6,IE7,FF 3.支持input显示与value分离【以隐藏域...

    精通JS脚本之ExtJS框架.part2.rar

    5.4.7 具有选择框的菜单 第6章 页面元素与模板 6.1 构成用户界面的元素 6.2 获取页面元素 6.3 元素常见的使用方法 6.3.1 常见的“显示/隐藏”方法 6.3.2 常见的“内容控制”方法 6.3.3 常见的“操控DOM”方法...

    vb学生成绩管理系统

    MsgBox "未输入课程号,请重新输入数据!", vbCritical + vbOKOnly Text1.SetFocus '定位光标 Exit Sub End If If Text2.Text = "" Then MsgBox "未输入课程名,请重新输入数据!", vbCritical + vbOKOnly ...

    Flashpaste 6.2中文版文本快速粘贴工具.rar

    指定当您按热键时字符串对话框要出现的位置:屏幕中心、插入符号附近、先前的位置要使紧邻字符串选择对话框的工具提示完整显示当前字符串,请选中此复选框。显示完整的文本于工具提示之内、记忆最后粘贴的字符串管理...

    高焕堂<应用框架原理与程序设计>源代码(Eclipse)

    然后根据说明下一步,到Select Packages页面时,在All @ Default 选项上单击Default,使其状态变为All @ Install,为防止麻烦我选择全部安装, 按提示安装完(下载的时候有点慢,耐心等待,1.5G左右)。 关于NDK...

    数据库调试工具

    1.2:处理编辑框“被选择文本”属性不正确的bug。该bug表现为调试时与编译后“被选择文本”不一致。 1.3:修正当查询结果中的第一个记录集已关闭时,其它记录集不显示的bug。 1.4:增加功能:读入Execl和目录文件时...

    Excel VBA实用技巧大全 附书源码

    04153设定、删除单元格的输入规则和信息提示(有效性设置) 04154为单元格设置条件格式、删除条件格式 04155为单元格插入指向工作簿内部的超链接、删除超链接 04156为单元格插入指向工作簿外部的超链接、删除超链接 ...

    浪潮服务器RAID配置方法(3).doc

    提示保存,选择[yes] 〔依Raid卡型号不同,有些可能没有此功能,如没有请跳过此步〕提示SSD缓存,选择[Can cel] 提示初始化,选择[yes] 正在初始化,能看到百分比进度条〔速度较快,可能一闪而过〕 初始化完成!...

    技术讲座_Div+Css布局

     1、表单文本输入的移动选择:  在文本输入栏中,如果加入了提示,来访者往往要用鼠标选取后删除,再输入有用的信息。其实只要加入onMouseOver="this.focus()" onFocus="this.select()" 代码到 &lt;textarea&gt; 中,...

    Ajax模仿google提示输入框 v1.8

    16.当输入框失去焦点时,提示框会自动隐藏 ######V1.8解决问题############ 17.解决了鼠标无法选择的问题 ****************************************************************** 文件使用说明: 在需要使用的页面...

    数据库原理实验报告整合

    单击“执行”按钮即可执行语句,在查询窗口内的“查询”窗格中可以看到“命令已成功完成”的提示消息。在“对象资源管理器”窗格中刷新,即可看到新建的数据库。 2、继续执行Create Database之后的语句,在“student...

    selenium怎样在多窗口中运行程序 (1)

    16.在录制的过程中,遇到了提示框的话,要怎样处理才能在正常的回放? 17.录制到邮件的时候,不能正常录制,要如何处理呢? 录制的时候,首先要指定要框架,然后再输入文本。 例如:邮件通过firebug定位为: ...

Global site tag (gtag.js) - Google Analytics