基于jquery的checkbox下拉框插件代码


Posted in Javascript onJune 25, 2010

option_check.js代码 :

/***************************************** 
调用方法为: 
Jselect($("#inputid"),{ 
bindid:'bindid', 
hoverclass:'hoverclass', 
optionsbind:function(){return hqhtml();} 
}); 
inputid为下拉框要绑定的文本框id 
bindid为点击弹出/收回下拉框的控件id 
hoverclass为鼠标移到选项时的样式 
hqhtml为绑定的数据 
******************************************/ 
(function($){ 
$.showselect = { 
init : function(o,options){ 
var defaults = { 
bindid : null, //事件绑定在bindid上 
hoverclass:null, //鼠标移到选项时样式名称 
optionsbind:function(){} //下拉框绑定函数 
} 
var options = $.extend(defaults,options); 
if(options.optionsbind!=null){//如果绑定函数不为空 
this._setbind(o,options); 
} 
if(options.bindid!=null){ 
this._showcontrol(o,options); 
} 
}, 
_showcontrol:function(o,options){//控制下拉框显示 
$("#"+options.bindid).toggle(function(){ 
$(o).next().slideDown(); 
},function(){ 
$(o).next().slideUp(); 
}) 
}, 
_setbind:function(o,options){//绑定数据 
var optionshtml="<div style=\"z-index: 999; position: absolute;\">" 
+options.optionsbind()+"</div>"; 
$(o).after(optionshtml); 
var offset= $(o).offset(); 
var w=$(o).width(); 
$(o).next().css({top:offset.top+$(o).height()+7,left:offset.left,width:w}); 
if(options.hoverclass!=null){ 
$(o).next().find("tr").hover(function(){$(this).addClass(options.hoverclass);}, 
function(){$(this).removeClass(options.hoverclass);}); 
} 
$(o).next().find("input[type=checkbox]").filter("[lang=checked]").each(function(){$(this).attr("checked","checked");}); 
$(o).next().find("input[type=checkbox]").click(function(){ 
var $ckoption=$(this).attr("checked"); 
if($ckoption){ 
$(this).attr("checked",""); 
}else{ 
$(this).attr("checked","checked"); 
} 
}); 
$(o).next().find("tr").click(function(){ 
var $ckflag=$(this).find("input[type=checkbox]"); 
if($ckflag.attr("checked")){ 
$ckflag.attr("checked",""); 
$ckflag.attr("lang",""); 
} 
else{ 
$ckflag.attr("checked","checked"); 
$ckflag.attr("lang","checked"); 
} 
var selarray=new Array(); 
$(o).next().find("input[type=checkbox]").each(function(){ 
if($(this).attr("checked")) 
selarray.push($(this).parent().next().text()); 
}); 
$(o).val(selarray.join(',')); 
}); 
$(o).next().hide(); 
} 
} 
Jselect = function(o,json){ 
$.showselect.init(o,json); 
}; 
})(jQuery);

html代码:
<script type="text/javascript" src="jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="option_check.js"></script> 
<style type="text/css"> 
.hover 
{ 
background-color: Blue; 
color: White; 
} 
</style> 
<script type="text/javascript"> 
$(function(){ 
Jselect($("#txt_wbk"),{ 
bindid:'txt_wbk', //可绑定到按钮上,此处为点击文本框显示下拉框 
hoverclass:'hover', 
optionsbind:function(){return hqhtml();} 
}); 
}) 
function hqhtml(){//此处可在数据库中取值后拼接html,注意:预选项加上 lang='checked'属性 
var optionshtml="<table style='width:100%; background-color: Red' cellpadding=\"0\" cellspacing=\"0\" >“ 




+”<tr><td style='width:20px'><input type=\"checkbox\" value='1' /></td><td>第一项</td></tr>" 

  +"<tr><td><input type=\"checkbox\" value='2' lang='checked'/></td><td>第二项</td></tr>" 

 +"<tr><td><input type=\"checkbox\" value='3' /></td><td>第三项</td></tr>" 
+"<tr><td><input type=\"checkbox\" value='4' /></td><td>第四项</td></tr></table>"; 
return optionshtml; 
} 
</script> 
<div> 
<input id="txt_wbk" type="text" style="width: 200px;" />下拉框测试 
</div>
Javascript 相关文章推荐
javascript的onchange事件与jQuery的change()方法比较
Sep 28 Javascript
JQuery之拖拽插件实现代码
Apr 14 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
使用js正则控制input标签只允许输入的值
Jul 29 Javascript
jQuery树形下拉菜单特效代码分享
Aug 15 Javascript
详解 javascript中offsetleft属性的用法
Nov 11 Javascript
AngularJS Toaster使用详解
Feb 24 Javascript
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
JS实现520 表白简单代码
May 21 Javascript
Vue 表情包输入组件的实现代码
Jan 21 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
May 10 Javascript
layui 解决form表单点击无反应的问题
Oct 25 Javascript
jquery keypress,keyup,onpropertychange键盘事件
Jun 25 #Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
Jun 25 #Javascript
javascript面向对象编程(一) 实例代码
Jun 25 #Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
Jun 25 #Javascript
jQuery对象和DOM对象使用说明
Jun 25 #Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
Jun 23 #Javascript
浅谈tudou土豆网首页图片延迟加载的效果
Jun 23 #Javascript
You might like
ArrayList类(增强版)
2007/04/04 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
javascript的BOM汇总
2015/07/16 Javascript
理解JS事件循环
2016/01/07 Javascript
完美解决js传递参数中加号和&amp;号自动改变的方法
2016/10/11 Javascript
JavaScript实现购物车基本功能
2017/07/21 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
深入理解Django-Signals信号量
2019/02/19 Python
python代码编写计算器小程序
2020/03/30 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
中专毕业生自荐信范文
2013/11/28 职场文书
播音主持专业个人自我评价
2014/01/09 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
安全责任协议书
2014/04/21 职场文书
讲党性心得体会
2014/09/03 职场文书
毕业横幅标语
2014/10/08 职场文书
实习单位推荐信
2015/03/27 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
解决Python字典查找报Keyerror的问题
2021/05/26 Python