我在asp.NET中有一个带有DataTextField和DataValueField的数据绑定Checkboxlist。
现在如果我在该列表中选择一个项目,我需要只有该项目的值。
我找到了很多解决方案来查找所有选定项目的值,但这不是我需要的。 我需要的唯一值是我选择或取消选择的值。
有没有办法用jQuery代码获取此值?例如,在下面的代码中的警报中。
$("#checkboxlist").click(function () {
alert('value of the item that just got (de)selected');
});
非常感谢!
更新: 这是html部分:
<span id="checkboxlist">
<input id="checkboxlist_0" type="checkbox" name="checkboxlist$checkboxlist_0" value="11" />
<label for="checkboxlist_0">Item 1</label><br />
<input id="checkboxlist_1" type="checkbox" name="checkboxlist$checkboxlist_1" value="12" />
<label for="checkboxlist_1">Item 2</label><br />
<input id="checkboxlist_2" type="checkbox" name="checkboxlist$checkboxlist_2" value="13" />
<label for="checkboxlist_2">Item 3</label><br />
<input id="checkboxlist_3" type="checkbox" name="checkboxlist$checkboxlist_3" value="14" />
<label for="checkboxlist_3">Item 4</label><br />
</span>
答案 0 :(得分:3)
此代码应该有效(Attribute Ends with selector):
$('[id$="checkboxlist"] input').click(function () {
alert($(this).val());
});
asp:CheckBoxList
将呈现为某个元素(在您的情况下应为span
),ID为ctl00_contenttop_checkboxlist
,并在其中输入。上面的代码将查找ID为以checkboxlist
结尾的元素内的所有输入,并在单击其中一个元素时触发。
但属性结束可能会很慢,所以最好这样做:
$("#<%=checkboxlist.ClientID %> input").click(function () {
alert($(this).val());
});
checkboxlist.ClientID
将在客户端返回包装元素的ID。
UPD:
根据您的HTML,看起来不需要ClientID(因为您看起来正在使用启用了ClientIDMode
的.net 4)。在这种情况下,您只需使用:
$("#checkboxlist input").click(function () {
alert($(this).val());
});