jquery获得CheckBoxList的Value值(此为原创,转载请注明出处,请尊重别人的劳动成果,谢谢合作)...

在vs2008中CheckBoxList服务器控件在客户端生成HTML控件时,Value全部为“on”,所以使用下面的js,获不到自己想要的CheckBoxList的Value值

<!-- 引用jquery核心库 -->

<script src="jquery.js" type="text/javascript"></script>

<script type="text/javascript">

 $(function() {
         $("#btnOK").click(function() {
                var str = "你选中的是:\r\n";
                $('input[type=checkbox]:checked').each(function() {
                    str += $(this).val() + "\r\n";
                })
                alert(str);
            });

        })

</script>
     

<body>
    <form id="form1" runat="server">
    <div>
        <asp:CheckBoxList ID="chkBaseItem" runat="server">
        </asp:CheckBoxList>
        <input type="button" id="btnOK" value="确定" />
        <input type="button" id="btnCancel" value="取消" οnclick="javascript:window.close();" />
    </div>
    </form>
</body>

 

所以为了解决这个问题,找了相关的资料,发现直接在js中做文章,是获不到值的,后来发现在绑定checkboxlist时,为ListItem每个对象添加一个alt属性,值保存对应的value值,是可以获得想要的值的。

js改成

    <script type="text/javascript" language="javascript">
        $(function() {
            $("#btnOK").click(function() {
                var valuelist = ""; //保存checkbox选中值
                $('input[type=checkbox]:checked').each(function() {
                    //$(this):当前checkbox对象;
                    //$(this).parent("span"):checkbox父级span对象
                    valuelist += $(this).parent("span").attr("alt") + ",";
                })

                if (valuelist.length > 0) {
                    //得到选中的checkbox值序列
                    valuelist = valuelist.substring(0, valuelist.length - 1);
                }
                alert(valuelist);

            });
        })
    </script>

后台代码:   

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //获取从页面传过来的baseItemId
            string baseItemId = GetString("baseItemId","");
            BindBaseItem(baseItemId);
        }
    }

    /// <summary>
    /// 由于CheckBoxList在客户端解析的html文本中的value是一样的,
    /// 所以要做以下的处理,在绑定checkboxlist时,为ListItem每个对象添加一个alt属性,值保存对应的value值
    /// </summary>
    private void BindBaseItem(string baseItemId)
    {
        //获得所有的多选选项(调用业务逻辑层方法,返回列表信息)
        IList<EB_BITEMLIST> eb_bItemLists = EBBITEMLISTManager.GetEB_BITEMLISTsByBaseItemId(baseItemId);

        if (eb_bItemLists != null && eb_bItemLists.Count > 0)
        {
            foreach (EB_BITEMLIST eb_bItemList in eb_bItemLists)
            {
                //分别为text值、value值
                this.chkBaseItem.Items.Add(new ListItem(eb_bItemList.VALUE.ToString(), eb_bItemList.VALUE.ToString()));
            }
        }

        //为ListItem对象添加alt属性,值保存value值
        foreach (ListItem listItem in chkBaseItem.Items)
        {
            listItem.Attributes.Add("alt", listItem.Value);
        }
    }

        /// <summary>
        ///  获得提交的值
        /// </summary>
        /// <param name="name">名称</param>
        /// <param name="defaultValue">转换失败时的默认值</param>
        /// <returns>值</returns>
        public static string GetString(string name, string defaultValue)
        {
            string value = defaultValue;

            if (HttpContext.Current.Request.QueryString[name] != null)
            {
                value = GetQueryString(name);
            }

            if (HttpContext.Current.Request.Form[name] != null)
            {
                value = HttpContext.Current.Request.Form[name];
            }

            return value;
        }

可能我们所实现的功能不一样,所以有些地方根据不同的需要有所改变,如果有什么问题,可以给我留言,有时间有能力我一定解答。

转载于:https://www.cnblogs.com/xuanze/archive/2011/11/30/xuanze.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值