使用jQuery获取数据绑定asp.NET checkboxlist的最后一个选定值

时间:2012-12-05 12:21:22

标签: jquery asp.net checkboxlist selectedvalue

我在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>

1 个答案:

答案 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());
});

Demo