Как получить или установить выбранный индекс списка переключателей с помощью jquery? - PullRequest
1 голос
/ 27 июня 2011

Как я могу переключить радио-кнопку с помощью индекса. Ниже приведен мой 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>

Я хочу добавить атрибут selected = true к переключателю по значению индекса.
предположим, я передал index = 2, затем его следует выбрать Category2 ..
или также хотите, чтобы его выбрали(флажок = true) указатель радиокнопки с использованием в jquery ..

Как мне это сделать?

Ответы [ 5 ]

2 голосов
/ 27 июня 2011

В отличие от полей выбора, в переключателях нет понятия индекса.

Однако вы можете сделать что-то подобное в jQuery:

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

Который получит все входные поля в пределах вашего диапазона, которые отмечены (который, поскольку вы используете радио, должен быть только один, если внутри .clsradio только одна группа).

Вот пример на jsfiddle


EDIT:

Более полный пример доказательства (но более медленный) будет:

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

Который получает входные данные, заканчивающиеся на rdlCategory. Вы даже можете добавить «: радио», но вам не нужно.


РЕДАКТИРОВАТЬ 2 - Проверка путем передачи в индекс.

Вы можете использовать:

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

nth-child, использующий селектор «input», может использоваться как индекс.

1 голос
/ 17 мая 2014

Это работает для меня:

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

Объяснение:

$("input[name='GroupName']") возвращает список элементов с именем 'GroupName'

.get(index)возвращает элемент i в списке.В случае радиогруппы это будет тег ввода, который вы хотите.

Входной тег - это элемент HTML, а не элемент jQuery, поэтому его нужно перенести.Затем вы можете вызвать метод prop.

$(html).prop('checked',true)
1 голос
/ 27 июня 2011
    $("#<%= rdlCategory.ClientID %> input:checked").index();

Что касается выбора элементов в ASP.NET с помощью jQuery, я не уверен, что он будет работать во всех сценариях. ASP.NET обновляет ViewState каждый раз, когда вы касаетесь элемента управления ASP.NET, поэтому я бы не стал использовать jQuery для манипулирования значениями выбора

если вы все еще хотите это, то $(selector).attr("checked",true);

1 голос
/ 27 июня 2011

используйте индекс метод jquery

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);
0 голосов
/ 26 февраля 2014

Unchecked даст «undefined», иначе он вернет значение выбранного объекта.

$('input[name=ctl00$cphTop$rdlCategory]:checked').val()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...