基于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倒计时功能实现代码
Jun 07 Javascript
js去除重复字符串两种实现方法
Jan 09 Javascript
动态加载js和css(外部文件)
Apr 17 Javascript
JS中判断null、undefined与NaN的方法
Mar 24 Javascript
ext中store.load跟store.reload的区别示例介绍
Jun 17 Javascript
js识别不同浏览器基于userAgent做判断
Jul 29 Javascript
SWFObject基本用法实例分析
Jul 20 Javascript
JavaScript接口的实现三种方式(推荐)
Jun 14 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
Nov 01 Javascript
基于jquery日历价格、库存等设置插件
Jul 05 jQuery
layui默认选中table的CheckBox复选框方法
Sep 19 Javascript
原生JS实现留言板功能
Feb 08 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
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
php反射应用示例
2014/02/25 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
PHP目录操作实例总结
2016/09/27 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
PHP常用日期加减计算方法实例小结
2018/07/31 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
JavaScript 继承详解(二)
2009/07/13 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
wxPython使用系统剪切板的方法
2015/06/16 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
电子商务专业学生的自我鉴定
2013/11/28 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
贷款委托书
2014/08/01 职场文书
财务部会计岗位职责
2015/02/03 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS
DE1107机评
2022/04/05 无线电
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers