2015-01-06 2 views
0

Я хочу заранее выбрать первый переключатель в следующем комплекте:Как предварительно выбрать радиокнопку в JQuery

HTML

<input type="radio" value="0" name="serviceNoteType[1]"> 
<input type="radio" value="1" name="serviceNoteType[1]"> 

JQuery

var i = 1; // for sake of this example 
$('[name="serviceNoteType\\['+ i +'\\]"]').prop('checked', true); 

В результате выбирается вторая радиокнопка, и я хочу, чтобы первый был выбран. Как настроить таргетинг на первый переключатель?

+2

И почему бы просто не добавить атрибут 'checked' к тому, который вы хотите проверить? – adeneo

ответ

3

Вы можете добавить .first() к вашему селектору:

var i = 1; // for sake of this example 
 
$('[name="serviceNoteType\\['+ i +'\\]"]').first().prop('checked', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="radio" value="0" name="serviceNoteType[1]"> 
 
<input type="radio" value="1" name="serviceNoteType[1]">

+0

Cool @ j08681 - Я этого не знал. Я попробую сейчас и отправлю обратно. –

+0

Удивительный ... это сделал трюк. Спасибо @ j08691 - я узнал что-то новое (что круто). Поэтому я предполагаю, что '.second()' и '.third()' и т. Д. Все работают. –

+0

@ H.Ferrence - Но опять же, почему «предварительно выбрать» с помощью jQuery, почему бы просто не отредактировать HTML? – adeneo

-1

Имена должны быть разными. Ваш селектор будет проверять только последний элемент, отображаемый этим именем.

$('[name="serviceNoteType\\['+ i +'\\]"]:first-child').prop('checked', true); 

Не проиндексирован, поэтому синтаксис может быть слегка выключен, но должен дать вам эту идею.

+1

Но разве это не значит, что радиокнотеры различают, какие элементы выбираются @sareed? –

+0

Вы выбираете 'имя =', так как они имеют одно и то же имя, он выберет последний отображаемый. Вы можете сделать 'each()' и проверить значение 0. Я предполагаю или выбираю first-child и т. Д. – sareed

+0

@sareed - но одно и то же имя для групп переключателей - это то, как они работают, и что заставляет их переключаться между выборами. Если у вас есть разные имена для всех переключателей, он больше не работает так, как ожидалось. – adeneo

1

Более краткой форме. Попробуйте следующее:

$("input:radio:first").attr('checked', true); 
+0

Хорошо, спасибо @Riad. Учитывая сложности в соглашении об именах для моих переключателей (из-за лежащей в основе CMS я использую), мне нужно использовать (at) j08691 ответ –

Смежные вопросы