需求:

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

思路:

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

环境:

Chrome+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

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

  1. 基于Bootstrap的下拉框插件bootstrap-select

    写在前面: 在这次的项目中,没有再使用liger-ui做为前端框架了,改为了Bootstrap,这次也好接触下新的技术,在学习的过程中发现,Bootstrap的一些组件基本都是采用class的形式,就 ...

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

    Bootstrap是当下流行的前端UI组件库之一.利用Bootstrap,可以很方便的构造美观.统一的页面.把设计师从具体的UI编码中解放出来.   Bootstrap提供了不少的前端UI组件.带下拉 ...

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

    Bootstrap框架中的下拉选择框使用和原始的一致,多行选择设置multiple属性的值为multiple.Bootstrap框架会为这些元素提供统一的样式风格 <form role=&quo ...

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

    今天给大家介绍一款基于jQuery美化联动下拉选择框.这款下下拉选择框js里自带了全国所有城市的数数库.下拉选择框适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲 ...

  5. 模块:(日期选择)jquery、bootstrap实现日期下拉选择+bootstrap jquery UI自带动画的日期选择器

    一:jquery.bootstrap实现日期下拉选择 点击文本框弹出窗口 弹窗显示日期时间选择下拉 年份取当前年份的前后各5年 天数随年份和月份的变化而变化 点击保存,文本框中显示选中的日期 代码部分 ...

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

    单行输入框,常见的文本输入框,也就是input的type属性值为text.在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确的样式,因为Bootst ...

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

    由于之前使用的bootstrap-select插件是建立在bootstrap基础上的,实际使用到项目中的时候,与我们使用的ace-admin(基于bootstrap)存在样式冲突,导致下拉框的样式发生 ...

  8. select2 智能补全模糊查询select2的下拉选择框使用

    我们在上篇文章中已经在SpringMVC基础框架的基础上应用了BootStrap的后台框架,在此基础上记录select2的使用. 应用bootstrap模板 基础项目源码下载地址为: SpringMV ...

  9. FancySelect – 更好用的 jQuery 下拉选择框插件

    FancySelect 这款插件是 Web 开发中下拉框功能的一个更好的选择.FancySelect 使用方便,只要绑定页面上的任何 Select 元素,并调用就 .fancySelect() 就可以 ...

随机推荐

  1. [转]java常用正则表达式

    只能输入数字:"^[0-9]*$".  只能输入n位的数字:"^\d{n}$".  只能输入至少n位的数字:"^\d{n,}$".  只能输 ...

  2. Mac下SVN基本操作和常见错误

    一.基本操作 1  从服务器上下载代码 svn checkout http://xxx.xxx.xxx/xxx 2  获取最新的代码 svn update 3  提交代码 svn commit -m ...

  3. Layout 实现三栏布局的几种方法

    https://github.com/ljianshu/Blog/issues/14    布局参考 https://github.com/ljianshu/Blog/issues/38  响应式那点 ...

  4. spring security (BCryptPasswordEncoder)加密及判断密码是否相同

    通过BCryptPasswordEncoder的加密的相同字符串的结果是不同的,如果需要判断是否是原来的密码,需要用它自带的方法. 加密: BCryptPasswordEncoder encode = ...

  5. video视频标签一些设置,包括封面、播放结束后的封面、视频占满屏幕的方式、视频播放暂停、展示控制栏、触发全屏播放事件

    video视频标签一些设置,包括封面.播放结束后的封面.视频占满屏幕的方式.视频链接.视频播放暂停.展示控制栏.触发全屏播放事件 <video id="video" auto ...

  6. JUnit4---Hamcrest匹配器常用方法总结

    一.Hamcrest是什么? Hamcrest is a library of matchers, which can be combined in to create flexible expres ...

  7. Linux 内核使用 USB 数据函数

    USB 核心中的几个帮忙函数可用来从所有的 USB 设备中存取标准信息. 这些函数不能从 中断上下文或者持有自旋锁时调用. 函数 usb_get_descriptor 获取指定的 USB 描述符从特定 ...

  8. Qt4与Qt3的主要不同

    Qt4与Qt3的主要不同 1)QT4 中提供了大量新控件,虽然它也保持了旧的控件,并命名为Qt3XXX,但是这样的控件没准在今后的哪个QT版本中就不被支持了,所以还是换吧,控件替换的 工作是巨大的,这 ...

  9. 2016湖南省赛 I Tree Intersection(线段树合并,树链剖分)

    2016湖南省赛 I Tree Intersection(线段树合并,树链剖分) 传送门:https://ac.nowcoder.com/acm/contest/1112/I 题意: 给你一个n个结点 ...

  10. ABP在MultipleDbContext也就是多库的场景下发布后异常“Could not find content root folder”问题处理

    ABP多库支持 ABP支持多库的方案在abp的案例中aspnetboilerplate-samples中给了现成的demo,其中MultipleDbContextDemo是EF的相关针对dotnet的 ...