如何使用jquery获取或设置单选按钮列表的选定索引?

时间:2011-06-27 11:19:24

标签: c# jquery asp.net javascript-framework

如何使用索引检查单选按钮.. 下面是我用于radion按钮列表的asp.net C#代码......

<asp:RadioButtonList runat="server" ID="rdlCategory" CssClass="clsradio" AppendDataBoundItems="true" RepeatDirection="Horizontal" RepeatLayout="Flow" >
</asp:RadioButtonList>

并动态地使用C#绑定它 和Html看起来像

<span class="clsradio" id="ctl00_cphTop_rdlCategory"><input type="radio" value="8" name="ctl00$cphTop$rdlCategory" id="ctl00_cphTop_rdlCategory_0"> 
    <label for="ctl00_cphTop_rdlCategory_0">category1</label>
    <input type="radio" value="11" name="ctl00$cphTop$rdlCategory" id="ctl00_cphTop_rdlCategory_1">
    <label for="ctl00_cphTop_rdlCategory_1">category2</label>
    <input type="radio" value="22" name="ctl00$cphTop$rdlCategory" id="ctl00_cphTop_rdlCategory_2">
    <label for="ctl00_cphTop_rdlCategory_2">category3</label>
    <input type="radio" value="33" name="ctl00$cphTop$rdlCategory" id="ctl00_cphTop_rdlCategory_3">
    <label for="ctl00_cphTop_rdlCategory_3">category4</label>
    <input type="radio" value="34" name="ctl00$cphTop$rdlCategory" id="ctl00_cphTop_rdlCategory_4">
    <label for="ctl00_cphTop_rdlCategory_4">category5</label>
    </span>

我想通过索引值将属性checked = true添加到单选按钮 假设,我通过了index = 2然后应该选择Category2 ..
或者也想在jquery中使用选择(checked = true)单选按钮索引。

我是怎么做到的?

5 个答案:

答案 0 :(得分:2)

与选择框不同,单选按钮中并没有真正的索引概念。

但是你可以在jQuery中做这样的事情:

$(".clsradio input:checked").index();

哪个将获取您检查范围内的所有输入框(如果只有一个组位于.clsradio内,则使用无线电的应该只有一个。)

这是example on jsfiddle


编辑:

更完整的证明示例(但速度较慢)将是:

$("input[name$='rdlCategory']:checked").index();

获取以rdlCategory结尾的输入。你甚至可以添加“:radio”,但你不需要。


编辑2 - 通过传入索引进行检查。

您可以使用:

 $(".clsradio input:nth-child(5)").attr("checked", "checked");

使用“input”选择器的nth-child可以用作索引。

答案 1 :(得分:1)

使用jquery的index方法

function selectRadioButton(inputindex){
    $('input[name="ctl00$cphTop$rdlCategory"]').index(inputindex).attr('checked', true);
}

获取选定的单选按钮索引...

var selectedIndex =  $('input[name="ctl00$cphTop$rdlCategory"]').attr('checked', true).index(inputindex);

答案 2 :(得分:1)

    $("#<%= rdlCategory.ClientID %> input:checked").index();

至于如何使用jQuery在ASP.NET中选择项目,我不确定它是否适用于所有场景。每次触摸ASP.NET控件时ASP.NET都会更新ViewState,因此我不会使用太多jQuery来操作选择值

如果你还想要这个$(selector).attr("checked",true);

答案 3 :(得分:1)

这对我有用:

$($("input[name='GroupName']").get(index)).prop('checked', true);

说明:

$("input[name='GroupName']")返回名称为“GroupName”

的项目列表

.get(index)返回列表中的i项。对于无线电组,这将​​是您想要的输入标签。

输入标记是HTML元素,而不是jQuery项,因此您重新包装它。然后,您可以调用prop方法。

$(html).prop('checked',true)

答案 4 :(得分:0)

未选中将提供“未定义”,否则将返回所选对象的值。

$('input[name=ctl00$cphTop$rdlCategory]:checked').val()