一个简单的实现下拉框多选的插件

在使用上次写的一个多先下拉框时,我发现了很多问题,经过修改和完善后,现在已经能够很好地使用了,且可移植性也比较好,下面是源代码。

js

(function(){

    $.fn.extend({
        checks_select: function(options){
            jq_checks_select = null;
            $(this).val("---请选择---");
            $(this).next().empty();		//先清空
            $(this).unbind("click");
            $(this).click(function(e){
                jq_check = $(this);
                //jq_check.attr("class", "");
                if (jq_checks_select == null) {
                	jq_checks_select = jq_check.next();
                	jq_checks_select.addClass("checks_div_select");
                    //jq_checks_select = $("<div class='checks_div_select'></div>").insertAfter(jq_check);
                    $.each(options, function(i, n){
                        check_div=$("<div><input type='checkbox' value='" + n + "'>" + n + "</div>").appendTo(jq_checks_select);
						check_box=check_div.children();
						check_box.click(function(e){
							//jq_check.attr("value",$(this).attr("value") );
							
							temp="";
							$(this).parents().find("input:checked").each(function(i){
								if(i==0){
									temp=$(this).val();
								}else{
									temp+=","+$(this).val();	
								}
							});
							//alert(temp);
							jq_check.val(temp);
							e.stopPropagation(); 
						});
                    });
                    jq_checks_select.show();
                }else{
					jq_checks_select.toggle();	
					
				}
				e.stopPropagation(); 
            });
			$(document).click(function () {
				flag=$("#test_div");
				if(flag.val()==""){
					flag.val("---请选择---");
				}
				jq_checks_select.hide(); 
			}); 
            //$(this).blur(function(){
					//jq_checks_select.css("visibility","hidden");
				//alert();
            //});
        }
    })
    
})(jQuery);

html

<html>
    <head>
        <script type="text/javascript" src="js/jquery.js">
        </script>
        <script type="text/javascript" src="js/jquery_mutili.js">
        </script>
        <script language="javascript">
            $(document).ready(function(){
                var options = {
                    1: "第一个选择项",
                    2: "第二个选择项",
                    3: "第三个选择项",
                    4: "第四个选择项",
                    5: "第五个选择项",
                    6: "第六个选择项"
                };
                $("#test_div").checks_select(options);
            });
        </script>
        <style>
            .checks_div_select {
				width: 150px;
                background-color: #e9fbfb;
                border: 1px solid #18cbcd;
                font-family: 'Verdana', '宋体';
                font-size: 12px;
				position:absolute;
				left:2px;
				top:25px;
            }
        </style>
    </head>
    <body>
        <div style="position:relative;">
            <input type="text" id="test_div" readonly="readonly"/>
	    <div></div>
        </div>
    </body>
</html>




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值