如何在select下拉列表中添加复选框?

  近来在给一个公司做考试系统的项目,遇到的问题不少,但其中的几个让我对表单的使用颇为感兴趣,前端程序员都知道,下拉列表有select标签,复选框有checkbox,但是两者合在一起却少有人去研究,当时接到这样的要求时我也蒙了,于是去网上查相关资料,查了好久,查不出个结果,只好自己用纯html css jq去做一个仿下拉列表中自带复选框的效果,代码如下,可直接复制去查看效果,

注:(以下代码为本人自己编写,只是一个小Demo,可以直接复制使用,但代码只是演示其效果和功能,告诉大家如何去写,所以界面可能没大家想要的那么漂亮!敬请谅解!0.0.)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #2b7ec3 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #d74200 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #289c97 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #4a8a01 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #060606 }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #4f5d66 }
p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #698906 }
p.p8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; min-height: 22.0px }
p.p9 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #060606; min-height: 22.0px }
span.s1 { color: #4f5d66 }
span.s2 { color: #2b7ec3 }
span.s3 { color: #48565d }
span.s4 { color: #289c97 }
span.s5 { color: #d74200 }
span.s6 { color: #000000 }
span.s7 { color: #929151 }
span.s8 { color: #060606 }
span.s9 { color: #ad42ef }
span.s10 { color: #4a8a01 }
span.s11 { color: #698906 }
span.s12 { color: #d16400 }
span.s13 { color: #4663cc }
span.s14 { color: #b58a00 }
span.Apple-tab-span { white-space: pre }

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

*{padding: 0;margin: 0;}

#wrap{

width: 500px;

height: 500px;

border: 1px solid blue;

margin: 100px auto;

}

#selectBoard{

width: 300px;

height: 20px;

border: 1px solid black;

border-radius: 5px;

position: relative;

margin: 30px auto;

}

#selectBoard ul{

width: 300px;

background: white;

position: absolute;

top: -10px;

left: -10px;

border: 1px solid red;

border-radius: 5px;

display: none;

}

#selectBoard ul li{

list-style: none;

}

#selectBoard ul li:hover{background: dodgerblue;}

#selectBoard img{

position: absolute;

right: 0;

top: 0;

width: 30px;

}

</style>

</head>

<body>

<div id="wrap">

<div id="selectBoard">

<ul>

<li><input type="checkbox" name="" id="" value="北京" />北京</li>

<li><input type="checkbox" name="" id="" value="上海" />上海</li>

<li><input type="checkbox" name="" id="" value="西安" />西安</li>

<li><input type="checkbox" name="" id="" value="石家庄" />石家庄</li>

</ul>

<span id="shuju"></span>

</div>

</div>

</body>

</html>

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>

<script type="text/javascript">

//定义一个空数组去接收value值

var arr = [];

//仿select的点击事件

$("#selectBoard").click(function(event){

var ev = event || window.event;

  //阻止默认事件及封装

if (ev.stopPropagation) {

ev.stopPropagation();

}else{

ev.cancelable = true;

}

$("#selectBoard ul").css("display","block");

});

$(window).click(function(){

$("#selectBoard ul").css("display","none");

});

//监听checkbox的value值 改变则执行下列操作

$("input").change(function(){

if ($(this).prop("checked")) {

arr.push($(this).val()+",");

console.log(arr);

}else{

arr.shift($(this).val()+",");

}

$("#shuju").html(arr);

});

</script>

欢迎大家提出建议!!

  

时间: 2024-10-25 14:51:51

如何在select下拉列表中添加复选框?的相关文章

QListWidget的QComboBox下拉列表添加复选框及消息处理

要在QComboBox下拉列表项中添加复选框,并进行消息处理,在网上搜索了很久没有找到太多有用的信息和实际的例子,但从中还是找到了一些提示性的资料,根据这些简短的介绍,最终实现了这个功能. QComboBox有一个setView的方法,因此,可以自定义的一个视图类,将复选框在视图中实现,本例自定义视图类继承于QListWidget,因为在该视图类中,有一个setItemWidget方法,可以直接将QCheckBox附加在QListWidgetItem项上. 具体看下面得的示例: //QCombo

在php中验证复选框

PHP接收多个同名复选框信息不像ASP那样自动转换成为数组,这给使用带来了一定不便.但是还是有解决办法的,就是利用javascript做一下预处理.多个同名复选框在javascript中还是以数组的形式存在的,所以在表单提交之前可以利用javascript把复选框中的信息组合成一个字符数组赋值给表单中的隐藏元素,然后用PHP中的explode函数解析此数组,这样就可以实现复选框信息的传递了.下面举例说明. 假设有这样一个表单: <form name="form1" id=&quo

组合框里添加复选框的方法(使用勾选的假象,用图片代替而已,并非QT原生支持)

组合框可以看作是列表框和文本框的组合,因其占据的空间少,使用操作方便,常被界面设计人员用于界面开发设计中,在有限个输入的条件下,组合框常用来代替文本框,这样从用户使用角度来看,更趋人性化,所见即所得.然好的控件永远敢不上应用的步伐,有时常规控件并不能满足应用的需要,经常需要在现有的控件上做扩展.有些应用需要在组合框的列表框的每一项前加复选框,以便可以控制列表框每一项的状态(选中还是未选中),显然现有的组合框(列表框+文本框的组合)不能满足应用要求.那么怎么得到一个超强组合框(列表框+文本框+复选

ajax动态添加复选框

1 function getLands() { 2 3 $.ajax({ 4 url:"httpserver.do?doPost&userQygs="+$("#userQygs").val(), 5 type:"POST", 6 dataType:"text", 7 8 success:function(data){ 9 10 if(data==null||data==""){ 11 12 aler

dojo:为数据表格添加复选框

一.添加复选框 此时应该选用EnhancedGrid,而不是普通的DataGrid.添加复选框需要设置EnhancedGrid的plugins属性,如下: gridLayout =[{ defaultCell: { type: cells._Widget, styles: 'text-align: center;' }, cells: [ { name: "WBS", field: "wbsCode", width: "60px"}, { nam

C#ListView控件添加复选框并获取选中的数目

1.添加复选框:listView1.CheckBoxes = true; 2.选中listview并获取选中的数目: private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e) { e.Item.Selected = e.Item.Checked; m = listView1.CheckedItems.Count; label1.Text = "当前选中数:" + m.ToString(); } 说

nodetree中 前面复选框禁用插件

nodetree中 前面复选框的去掉插件 extendTreeCheck.js 1 /** 2 * tree方法扩展 3 * 作者:小雪转中雪 4 */ 5 $.extend($.fn.tree.methods, { 6 /** 7 * 激活复选框 8 * @param {Object} jq 9 * @param {Object} target 10 */ 11 enableCheck : function(jq, target) { 12 return jq.each(function(){

QTableView中嵌入复选框CheckBox 的四种方法总结

搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四种比较适合扩展,它除了可以嵌入复选框,还可以通过paint()绘制其它控件,图片等自定义风格. 第一种方法是:编辑委托法 这种方法直接利用委托中重载createEditor(),激活QCheckBox,这个缺点是必须双击/选中,才能显示CheckBox控件.一般不满足我们实际中的直接显示的需要.可以

C# Word中插入复选框选中符号

object fontname = "Wingdings 2";  object uic = true;    doc.Bookmarks.get_Item(ref lblmark).Range.InsertSymbol(-4014, ref fontname, ref uic, ref missing); C# Word中插入复选框选中符号,布布扣,bubuko.com