我正在使用Asp.Net的CheckBoxList控件。为了获得选中的复选框,我在将数据绑定到复选框列表后为Value添加自定义属性。
我能够在jQuery中获取选中的复选框,但我不知道如何使用复选框列表中的自定义属性查找特定的复选框。
这是代码:
在.cs文件中的数据绑定后:
foreach (ListItem li in cblRequestTypes.Items)
li.Attributes.Add("itemValue", li.Value);
获取所选的checbox:
$(":checkbox").each(function() {
if (this.checked) {
selectedChecks += $(this).parent().attr("itemValue") + "~";
}
});
现在我传递查询字符串中的值,并根据我必须找到在查询字符串中发送了itemValue属性的复选框。这部分不起作用,或者我在这里遗漏了一些东西。
var id = $.QueryString["id"]
$(id.split("~")).each(function (i, item) {
$("checkbox[itemValue=" + item +"]").attr('check',checked');
});
这是呈现CheckBoxList的HTML的方式:
<span itemValue="3"><input id="chkBoxList_0" type="checkbox" name="chkBoxList$0" /><label for="chkBoxList_0">Text 1</label></span>
<span itemValue="5"><input id="chkBoxList_1" type="checkbox" name="chkBoxList$1" /><label for="chkBoxList_1">Text 2</label></span>
<span itemValue="6"><input id="chkBoxList_2" type="checkbox" name="chkBoxList$2" /><label for="chkBoxList_2">Text 3</label></span>
<span itemValue="7"><input id="chkBoxList_3" type="checkbox" name="chkBoxList$3" /><label for="chkBoxList_3">Text 4</label></span>
<span itemValue="8"><input id="chkBoxList_4" type="checkbox" name="chkBoxList$4" /><label for="chkBoxList_4">Text 5</label></span>
<span itemValue="9"><input id="chkBoxList_5" type="checkbox" name="chkBoxList$5" /><label for="chkBoxList_5">Text 6</label></span>
答案 0 :(得分:2)
$("span[itemValue=8] input")
这将为您提供itemValue
(在此示例中)为8的范围内的复选框。
正如我在评论中所说的那样,将你的value属性放在span元素上有点令人困惑,因为你的选择器是$("checkbox[itemValue=" + item +"]")
,所以它似乎也让你感到困惑 - 这不是很有意义。
您的选择器将查找checkbox
元素 - 该元素不存在;您要查找的元素是input
( type “复选框”)。
并且它会尝试找到一个具有dataValue
属性的属性 - 这些属性都没有,因为该属性位于 span 上。
答案 1 :(得分:1)
其他人已经回答了这个问题,但当我试图提出答案时,它似乎已被删除。
尝试:
$('span[itemValue=8] input')
(其中8是您要查找的ID;本例中恰好选择8)