Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   значение radio (https://javascript.ru/forum/jquery/45181-znachenie-radio.html)

Prowler 18.02.2014 01:14

значение radio
 
Доброго вам!
Не выходит, вроде бы, простая вещь.
Нужно проверить radio на check неcheck.
Групп radio на странице несколько, ни количество групп ни количество самих input не известно(генерируется).

Задача проверить перед отправкой формы на нечекнутые radio и поругать за это пользователя :)

Пытаюсь родить что-нибудь вроде такого:
$("div .answers").each(function(){
if($(this).children().prop("checked")) {alert('checkd');}
});

т.е. берется первый блок ответов-radio(заключенный в div), получаем его потомков, проверяем: если они чекнуты то выводим сообщение. Потом след. блок и т.д. Но это не работает как не старался.

Чуть не забыл html:
<div class="answers">
<INPUT type="radio" id="20-21" name="20" />
<INPUT type="radio" id="21-21" name="21" />
</div>

ну и так далее...
Поможите люди добрые :thanks:

рони 18.02.2014 02:44

Цитата:

Сообщение от Prowler
$("div .answers").each

дивы то все проверяем а инпуты значит хором хотим $(this).children().prop("checked") -- циклом их циклом :write: -- каждый checked

Prowler 19.02.2014 15:47

действительно. Хотя, пробовал перебирать, но видимо в поздний час где-то допустил синтаксическую ошибку и не работало. Хотя, так и не понятно, в примерах children().css() - стили применяются ко всем дочерним элементам, без перебора, а свойство не получается....
Спасибо за наводку, получилось то, что хотел.:victory: :thanks:

danik.js 19.02.2014 16:08

Цитата:

Сообщение от Prowler
применяются

Одно дело применить свойство, другое дело - получить. Чувствуешь разницу?

danik.js 19.02.2014 16:10

Цитата:

Сообщение от рони
циклом их циклом

Можно просто отфильтровать :not(:checked). Если такие есть - значит чекнуты не все.

Prowler 19.02.2014 16:17

Цитата:

Сообщение от danik.js (Сообщение 298384)
Одно дело применить свойство, другое дело - получить. Чувствуешь разницу?

Честно? Нет.

А отфильтровать нельзя. Задача была найти на какой вопрос не получен ответ и вывести этот номер.

рони 19.02.2014 16:37

Цитата:

Сообщение от Prowler
А отфильтровать нельзя.

почему нельзя-то?
сам себе отвечаю может вопросы с
type="radio"

danik.js 19.02.2014 17:03

Цитата:

Сообщение от Prowler
Честно? Нет.

Когда нужно записать свойство - проблем нет: прошелся по всем элементам и каждому записал свойство. А когда нужно получить свойство, че делать? Обойти все и вернуть true только когда у все true? Или если хотя бы у одного true? А как насчет других свойств, не логических? Скажем как вернуть style.color? Вот когда расскажешь как оно должно работать (причем так, чтобы это все понимали без объяснений, ибо методы в jquery просто обязаны быть интуитивно-понятными), вот тогда можешь завести bug в багтреккере Jquery.

Prowler 19.02.2014 20:48

Цитата:

Сообщение от рони
почему нельзя-то?

заранее не известно сколько может быть ответов к тому или иному вопросу. Если отфильтровать все не_чекнутые, мы, конечно получим их список, но это не то.
-radio1
-radio2
-radio3
отметили радио2, фильтр вернет радио 1 и радио3. Но о том что радио2 = чек я не знаю, ибо я не знаю что их три.

Можно ли как то использовать "подфильтр"?
$("div .answers").each(function(
// можно ли здесь применить селектор чтобы он подействовал к текущей выборке, т.е. к объекту на который ссылаемся $(this)?
))

рони 19.02.2014 21:09

Prowler,
у всех радио должно быть одно имя если с этим именем все не чекет значит ничего невыбрано


Часовой пояс GMT +3, время: 04:12.