基于bootstrap的下拉选择 ( combox ) 输入 ( input ) 功能

需求:

在编辑数据的时候,既可以让用户输入,也可以从下拉框中选择

思路:

参照下面的效果图,因为是表格里面的数据,所以下拉框触发按钮和输入框分别为1列,输入列可以设置是否输入(方法:<td contenteditable="true">)。图中没有设置输入,因为班级是value,name形式的,只能选择。

环境:

Jquery+bootstrap+HTML5

效果图:

代码:

<html>
<head>
<title>Table下拉选择输入框</title>
<link href="../lib/bootstrap-3.3.7/css/bootstrap.css" rel="stylesheet">
<script src="../lib/bootstrap-3.3.7/js/jquery-3.1.1.min.js"></script>
<script src="../lib/bootstrap-3.3.7/js/bootstrap.js"></script>
</head>
<style>
.combox-select-div{
    line-height: 30px;
    border-bottom: 1px solid #ccc;
    height:30px;
    width:100%;
    cursor:pointer;
    text-align: center;
    border-buttom:solid 1px gray;
}
.combox-select-div:hover{
    background-color: #ccc;
}
.td-comboxdiv
{
    display:none;
    width:134px;
    height:200px;
    background-color:white;
    overflow:auto;
    overflow-y:scroll;
    position:absolute;
    z-index:1000;
    box-shadow:0 6px 12px rgba(0,0,0,.175);
}
</style>
<script>
$(document).ready(function(){
    //填充数据
    for(var i=1;i<10;i++)
    {
             str = [
                 ‘<tr id="row_‘+i+‘">‘,
                     ‘<td >小明‘+i+‘</td>‘,
                     ‘<td>男</td>‘,
                     ‘<td >2‘+i+‘</td>‘,
                     ‘<td  name="‘+i+‘"  style="background-color:white;width:100px;border-right: 0px solid #ccc;">GIS120‘+i+‘</td>‘,
                     ‘<td  style="padding:0px;background-color:white;border-left: 0px solid #ccc;width:34px"><button onclick="createDropSelect(this)" type="button" style="margin:1px;float:right;height: 34px;" class="btn btn-default dropdown-toggle"><span class="caret"></span></button></td>‘,
                    ‘<td>‘,
                    ‘<a class="glyphicon glyphicon-floppy-disk size16" style="cursor:pointer"  title="保存" onclick="saveUpdateLabelDate(this)"></a>‘,
                    ‘</td>‘,
                 ‘</tr>‘
            ];
            var tbstr=str.join(‘‘);
            $(‘#TempDialogTable‘).append(tbstr);
    }
});
//点击下拉按钮弹出班级下拉框
function createDropSelect(btobj){
           var comboxobj=$(‘#modalLabelCombox‘);
            var display =comboxobj.css(‘display‘);
            var index=btobj.parentNode.parentNode.offsetTop;
            var left=btobj.parentNode.offsetLeft;
            var rowId=btobj.parentNode.parentNode.id;
           if(display=="none")
           {
                comboxobj.css({"left":left-100,"top":index+40,"display":"block"});
           }
           else
           {
                comboxobj.css("display","none");
           }
           var str=""
           for(var i=1;i<10;i++)
           {
                str+=‘<div value=‘+i+‘ onclick="getDropSelectValue(‘+rowId+‘,this)" class="combox-select-div">GIS120‘+i+‘</div>‘;
           }
           comboxobj.html(str);
}
//将选择的班级信息填入到班级列中
    function getDropSelectValue(rowId,selecttext){
            $(rowId.cells[3]).attr("name",$(selecttext).attr("value"));
            rowId.cells[3].innerText=selecttext.innerText;
            $(‘#modalLabelCombox‘).css("display","none");
        }
//点击保存获取班级信息
    function saveUpdateLabelDate(bdom){
                   var aleteRow=bdom.parentNode.parentNode;
                var  lbId=aleteRow.cells[0].innerText;          //姓名
                var tagid=$(aleteRow.cells[3]).attr("name");   //班级编号
                alert("班级编号:"+tagid);
        }
</script>
<body >
    <div  class="td-comboxdiv" id="modalLabelCombox"></div>
    <table id="TempDialogTable" class="table table-striped table-bordered" >
        <thead style="background-color:#E7E6E6;">
            <tr>
                <th>姓名</th>
                <th>性别</th>
                <th>年龄</th>
                <th colspan=2>班级</th>
                <th>操作</th>
            </tr>
        </thead>
                <tbody></tbody>
    </table>
</body>
</html>

博客源址:http://www.cnblogs.com/GIScore/p/7244227.html

时间: 2024-10-06 14:29:11

基于bootstrap的下拉选择 ( combox ) 输入 ( input ) 功能的相关文章

创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件

Bootstrap是当下流行的前端UI组件库之一.利用Bootstrap,可以很方便的构造美观.统一的页面.把设计师从具体的UI编码中解放出来.   Bootstrap提供了不少的前端UI组件.带下拉菜单的文本框就是其中之一,效果图如下(真要自己完全设计,还得费一番功夫)   关于该组件的详情参看Bootstrap官网.带下拉菜单的文本框   看到上面的效果图,使我想到WinForm编程中的DropDownList控件.不过,和DropDownList控件相比,还缺少以下内容 1.当点击菜单中的

360浏览器搜索框下拉选择图片js模拟select效果

最近360浏览器网址导航的主页增加了一个下拉选择图片搜索的功能,也就是用js模拟出了select的效果,今天在单位闲了无事干,就把空上功能给摸索出来了,虽然做的不是太完善,但对要求不高的用户来说,已经可以了,而且也可以为学习Js的朋友提供参考. <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>

Bootstrap系列 -- 15. 下拉选择框select

Bootstrap框架中的下拉选择框使用和原始的一致,多行选择设置multiple属性的值为multiple.Bootstrap框架会为这些元素提供统一的样式风格 <form role="form"> <div class="form-group"> <select class="form-control"> <option>1</option> <option>2</

基于jQuery美化联动下拉选择框

今天给大家介绍一款基于jQuery美化联动下拉选择框.这款下下拉选择框js里自带了全国所有城市的数数库.下拉选择框适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="container"> <div class="inner"> <section id="main_content"

Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)

单行输入框,常见的文本输入框,也就是input的type属性值为text.在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确的样式,因为Bootstrap框架都是通过input[type=“?”](其中?号代表type类型,比如说text类型,对应的是input[type=“text”])的形式来定义样式的. 为了让控件在各种表单风格中样式不出错,需要添加类名“form-control”,如: <form role="form"

jquery.chosen.js下拉选择框美化插件项目实例

由于之前使用的bootstrap-select插件是建立在bootstrap基础上的,实际使用到项目中的时候,与我们使用的ace-admin(基于bootstrap)存在样式冲突,导致下拉框的样式发生变化.为了界面的美观,不得已查资料寻找另外的插件. 使用jquery.chosen.js下拉选择框美化插件同样也能达到类似效果 完成效果如下 实现步骤如下 1.导入相关文件 <link rel="stylesheet" href="${ctxStatic}/css/chos

基于iscroll实现下拉和上拉刷新

http://www.zhangyunling.com/359.html 重要提示 本插件已经经过更新,查看更新的插件代码,以及介绍请查看:基于iscroll实现下拉和上拉刷新(优化); 在原生APP的开发中,有一个常见的功能,就是下拉刷新的功能,这个想必大家都是知道的,但是原生APP的开发,有一个很大的问题就是,你每次更新一些功能,就要用户重新下载一次版本,尤其是在IOS系统中,新版本还需要经过审核才能通过,这就使得版本的更新受到很大的限制,而如果我们改用网页来展示,那么只要改变服务器中网页的

基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案

基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案 两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器进行设置之类的,结果没有一个有效果,暑假学习了用Dos来开发Java程序,输入cmd命令中dir(directory)进行查询操作时,显示了一堆中文乱码,原本是想重装系统的,因为电脑里面重要东西有点多,所以自己花了一段时间捣鼓了一下电脑,终于解决了如上两个问题,现在心里很开心,附上如下两幅图: cm

JS为Select下拉框增加输入功能

JavaScript使用parentNode.nextSibling.value实现的本功能,实际上你会发现网页上有两个控件元素,一个是Select,一个是input,使用CSS将input覆盖于select之上,再使用JS将下拉框的值赋值给input,实际上是用input模拟出了select的功能,思路很新颖,也不知到底有多少人需要select可输入文字的功能,下面是详细的实现代码:前端资源分享 .代码   <div style="position:relative;">