实现一个combo选项

 

效果图如上:可以手动输入值,也可以选择下拉列表值

思路:

①布局select和input,让input覆盖select,除了select的下拉图标,以方便select选择

②编写JS,为select添加onchange事件,onchange时将input的value置成select选中的值

下面给出两个实现:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>

<title></title>

<style>

 

html,body {width:100%;height:100%;margin:0px;padding:0px;overflow:hidden;text-align:center;}

#container{padding:0px;position:relative;width:100px;margin:0 auto;}

#comboinput{width:70px;margin-left:0px;display:block;height:20px;font-size:15px;position:absolute;top:0px;left:0px;}//绝对定位

#comboselect{width:93px;display:block;height:26px;font-size:15px;}

</style>

 

</head>

 

<body>

<div id="container">

       <input type="text" id="comboinput" style="z-index:9999;"/>

       <select id="comboselect">

              <option>A</option>

              <option>B</option>

              <option>C</option>

              <option>D</option>

       </select>

</div>

 

</body>

<script>

       var element = document.getElementById("comboselect");

       element.onchange = function ab(){ //放在后面因为idcomboselect的元素尚未加载

              var index = element.options.selectedIndex;

              var val = element.options[index].value;

              document.getElementById("comboinput").value=val;

       }

</script>

</html>

 

 

 

 

第二种实现:

 

<HTML>

<HEAD>

<META http-equiv='Content-Type' content='text/html; charset=GBK'>

<TITLE>可输入的下拉框</TITLE>

<style type="text/css">

    .container {position:relative;margin:10px;}

    .container .sel {margin-left:-100px;width:120px;}

    .container .input {width:100px;height:20px;position:absolute;}

</style>

</HEAD>

<BODY>

<div class="container">

<span style="margin-left:100px;width:20px;overflow:hidden;position:absolute;">

    <select class="sel" id="sel">

        <option value="选项1">选项1</option> //设置value

        <option value="选项2">选项2</option>

        <option value="选项3">选项3</option>

        <option value="选项4">选项4</option>

    </select>

</span>

    <input type="text" class="input" id="input"></input>

</div>

<script type="text/javascript">

    var sel = document.getElementById("sel");

    var input = document.getElementById("input");

    sel.onchange = function() {

        input.value = sel.value;//因为option设置了value属性

    }

</script>

</BODY></HTML>

 

总结:position:absolute;元素一定在其他元素上方;即使设置z-index也是如此,如此题用select覆盖input并将input设置z-index:999则不产生效果;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值