select下拉框可输入值

来源:互联网 发布:手机转区软件 编辑:程序博客网 时间:2024/06/05 15:18
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>输入框的下拉提示</title>
<style type="text/css">
<!--
body{background:#fff}
.Menu {
position:relative;
width:204px;
height:127px;
z-index:1;
background: #FFF;
border:1px solid #000;
margin-top:-100px;
display:none;
}
.Menu2 {
position: absolute;
left:0;
top:0;
width:100%;
height:auto;
overflow:hidden;
z-index:1;
}
.Menu2 ul{margin:0;padding:0}
.Menu2 ul li{width:100%;height:25px;line-height:25px;text-indent:15px;
border-bottom:1px dashed #ccc;color:#666;cursor:pointer;
change:expression(
this.onmouseover=function(){
this.style.background="#F2F5EF";
},
this.onmouseout=function(){
this.style.background="";
}
)
}
input{width:200px}
.form{width:200px;height:auto;}
.form div{position:relative;top:0;left:0;margin-bottom:5px}
#List1,#List2,#List3{left:0px;top:93px;}
-->
</style>
<script type="text/javascript">
function showAndHide(obj,types){
var Layer=window.document.getElementById(obj);
switch(types){
case "show":
Layer.style.display="block";
break;
case "hide":
Layer.style.display="none";
break;
}
}
function getValue(obj,str){
var input=window.document.getElementById(obj);
input.value=str;
}
</script>
</head>
<body>
<div class="form">
<div> Location:<input type="text" id="txt" name="txt" onfocus="showAndHide('List1','show');" onblur="showAndHide('List1','hide');"></div>
<!--列表1-->
<div class="Menu" id="List1">
<div class="Menu2">
<ul>
<li onmousedown="getValue('txt','中国CHINA');showAndHide('List1','hide');">中国CHINA</li>
<li onmousedown="getValue('txt','美国USA');showAndHide('List1','hide');">美国USA</li>
</ul>
</div>
</div>
<div> Sex:<input type="text" id="txt2" name="txt2" onfocus="showAndHide('List2','show');" onblur="showAndHide('List2','hide');"></div>
<!--列表2-->
<div class="Menu" id="List2">
<div class="Menu2">
<ul>
<li onmousedown="getValue('txt2','男Male');showAndHide('List2','hide');">男Male</li>
<li onmousedown="getValue('txt2','女Female');showAndHide('List2','hide');">女Female</li>
</ul>
</div>
</div>
<div> education:<input type="text" id="txt3" name="txt3" onfocus="showAndHide('List3','show');" onblur="showAndHide('List3','hide');"></div>
<!--列表3-->
<div class="Menu" id="List3">
<div class="Menu2">
<ul>
<li onmousedown="getValue('txt3',this.innerText);showAndHide('List3','hide');">大专</li>
<li onmousedown="getValue('txt3','本科');showAndHide('List3','hide');">本科</li>
<li onmousedown="getValue('txt3','硕士');showAndHide('List3','hide');">硕士</li>
<li onmousedown="getValue('txt3','本科');showAndHide('List3','hide');">本科</li>
</ul>
</div>
</div>
</div><br/>
</body>
</html>

<p align="center"></p>



现在的HTML5支持下拉框输入,但是对浏览器兼容比较差,自己用HTML4.0做了一个可输入的下拉框,推荐给大家。

代码如下,实际上就是一个输入框和一个下拉框组合,输入框放在下拉框上面,另外可以扩展很多,例如要不要带筛选什么,这些加一些js代码就可以了。

备注一下:右边的箭头是自己弄的提个图片,可以再简单点的,也就是用默认的箭头。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml">  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    <script type="text/javascript" src="jquery-1.6.4.min.js"></script>  
      
    <title>无标题文档</title>  
    <script>  
    $(document).ready(function(){  
       $("select").click(function(){  
            var selectinput=this.parentNode;  
            var selectinput_input=$(selectinput).children("input");  
            var selectinput_select=$(selectinput).children("select");  
            selectinput_input.attr("value",selectinput_select.val());  
        });  
    });  
    </script>  
    </head>  
    <style>  
      .selectinput{  
    height:25px;   
    line-height:25px;   
    vertical-align:middle;  
    width: 200px;  
    overflow: hidden;  
    background: url(down_arrow_select.png) no-repeat right #FFFFFF;  
    }  
      
    .selectinput_select{  
       height:25px;  
       width:100%;  
       margin:0;  
       padding:0;  
       font:"宋体" 14px;  
       background: transparent;  
       -webkit-appearance: none;  
    }  
      
    .selectinput_input{  
       position:relative;  
       margin:0;  
       padding:0;  
       top:-23px;  
       left:1px;  
       height:20px;  
       line-height: 20px;  
       border:none;  
       width:20%;  
       font:"宋体" 14px;  
    }  
      
    </style>  
      
    <body>  
    <div class='selectinput' id="test3">  
                   <select  size='1' class="selectinput_select"  >  
                      <option value="test1">test1</option>  
                      <option value="test2">test2</option>  
                      <option value="test3">test3</option>  
                    </select>  
                   <input type='text'  class="selectinput_input"/>  
                </div>  
    </body>  
    </html> 

0 0
原创粉丝点击