2016-01-27 2 views
-3

у меня есть этот код:Weird вопрос селектор

<li>Oui<input name="antecedents" value="1" type="radio" style="margin-right: 10px;" onclick="console.log($('#antecedents').value);"/></li> 
<li>Non<input name="antecedents" value="2" type="radio" style="margin-right: 10px;" checked="checked" onclick="console.log($('#antecedents').value);"></li> 

Когда я нажимаю, я получил «не определено» в консоли, кстати, если я использую this.value в console.log() я имею право результат ....

Если некоторые видят здесь что-то не так с селектором ... иногда свежие глаза лучше.

Спасибо заранее, ребята.

+1

Попробуйте использовать console.log ($ ('[имя = "прошлое"]') Val() –

+1

Пожалуйста [научиться любить этикетки] (HTTP:. // WWW .456bereastreet.com/archive/200711/use_the_label_element_to_make_your_html_forms_accessible /) – Quentin

ответ

1

Вот что вы должны сделать:

<li>Oui<input name="antecedents" id="antecedents" value="1" type="radio" style="margin-right: 10px;" onclick="console.log($('#antecedents').val());"/></li> 

$("#selector") - это селектор сопоставляется идентификаторы не называют атрибутами. Чтобы соответствовать имя атрибута, используйте

$("input[name=antecedents]").val(); 
+1

Может ли downvoter сказать мне, где я ошибся? Добавление атрибута id и его правильное совпадение в jQuery ... что с этим не так? –

+1

Это не сработает. несколько элементов с тем же именем, этот код всегда будет возвращать значение первого. – Quentin

4

Проблема 1

id selector соответствует элементу, основанный на его id.

Ваш вход не имеет идентификатора, только name.

Вы можете либо указать идентификаторы элементов (помните: идентификатор должен быть уникальным в документе), либо использовать attribute selector.

Задача 2

объекты JQuery не имеют value свойства. У них есть val() method.

value is a property местных объектов DOM. Вы также можете получить собственный объект DOM из объекта jQuery и проверить его значение: $(selector)[0].value.

Задача 3

Если используется селектор атрибута для выбора нескольких элементов, то метод val() возвращает значение элемента первого не проверил элемент.

Вам нужно отфильтровать, чтобы узнать, какой вариант выбран пользователем. Для этого вы можете использовать checked selector.


$('[name="antecedents"]:checked').val() 
Смежные вопросы