JQuery дает мне то же значение для любой выбранной радиокнопки? - PullRequest
3 голосов
/ 17 октября 2011

У меня есть следующие переключатели:

<fieldset data-role="controlgroup" data-type="horizontal">
<legend>Business Type</legend>
<input type="radio" name="businessType" value="business" id="business" checked="checked"/>
<label for="business">Business</label>
<input type="radio" name="businessType" value="personal" id="personal"/>
<label for="personal">Personal</label>
</fieldset>

Я пытаюсь использовать этот jQuery для получения текущего значения выбранного переключателя, но я продолжаю получать «Бизнес» в качестве значения, даже если я выбрал персональный:

var idd = ($("input:radio[name=businessType]").val());

Спасибо

Ответы [ 2 ]

11 голосов
/ 17 октября 2011

Согласно документам , вам нужно сделать:

var idd = ($("input:radio[name=businessType]:checked").val());
2 голосов
/ 17 октября 2011

Конечно, он всегда будет возвращать «Бизнес». $("input:radio[name=businessType]") дает вам все переключатели с определенным именем, а не только выбранное, а .val возвращает значение первого - в данном случае, «Business».

Вам необходимо сузить выбранные вами элементы до одного - выбранных элементов. Есть простой способ сделать это:

$("input:radio[name=businessType]").filter(":checked").val();

<ч /> Как примечание, ваш селектор довольно плохой. Вы выбираете каждое поле ввода, а затем фильтруете их. Я бы предложил что-то вроде этого:

$(containingForm).find("input:radio[name=businessType]")

Таким образом, вы выбираете один элемент (содержащую форму / другой контейнер) и находите в нем только правильные радиовходы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...