Как получить или установить выбранный индекс списка переключателей с помощью jquery?
Как я могу установить переключатель с помощью индекса... Ниже приведен мой код 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>
Я хочу добавить атрибут check =true к переключателю по значению индекса.
предположим, я передал index=2, тогда он должен быть выбран Category2 ..
или также хотите получить выбранный (проверенный = истинный) индекс переключателя, используя в jquery..
Как мне это сделать?
5 ответов
В отличие от блоков выбора, в переключателях нет понятия индекса.
Однако вы можете сделать что-то подобное в jQuery:
$(".clsradio input:checked").index();
Который получит все входные поля в пределах вашего диапазона, которые отмечены (которые при использовании радио должны быть только один, если внутри.clsradio только одна группа).
РЕДАКТИРОВАТЬ:
Более полный пример доказательства (но медленнее) будет:
$("input[name$='rdlCategory']:checked").index();
Который получает входные данные, заканчивающиеся на rdlCategory. Вы могли бы даже добавить ": радио", но вам не нужно.
РЕДАКТИРОВАТЬ 2 - Проверка путем передачи в индекс.
Ты можешь использовать:
$(".clsradio input:nth-child(5)").attr("checked", "checked");
В качестве индекса можно использовать nth-child, использующий селектор "input".
$("#<%= rdlCategory.ClientID %> input:checked").index();
Что касается выбора элементов в ASP.NET с использованием jQuery, я не уверен, что он будет работать во всех сценариях. ASP.NET обновляет ViewState каждый раз, когда вы касаетесь элемента управления ASP.NET, поэтому я бы не стал использовать jQuery для манипулирования значениями выбора
если ты все еще хочешь это тогда $(selector).attr("checked",true);
Это работает для меня:
$($("input[name='GroupName']").get(index)).prop('checked', true);
Объяснение:
$("input[name='GroupName']")
возвращает список элементов с именем "GroupName"
.get(index)
возвращает i
ый пункт в списке. В случае радиогруппы это будет тег ввода, который вы хотите.
Входной тег - это элемент HTML, а не элемент jQuery, поэтому его нужно перенести. Тогда вы можете позвонить prop
метод.
$(html).prop('checked',true)
Использовать индексный метод 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);
Если флажок не установлен, будет указано "неопределенное", в противном случае будет возвращено значение выбранного объекта.
$('input[name=ctl00$cphTop$rdlCategory]:checked').val()