Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вызов click() на radio не изменяет его checked (https://javascript.ru/forum/misc/54911-vyzov-click-na-radio-ne-izmenyaet-ego-checked.html)

laimas 06.04.2015 13:56

>Мне нужно, чтобы click происходил ДО ТОГО, как форма попадет в страницу.

И каким это образом? Если нужно чтобы при добавлении группы, какой-то из ее элементов был установлен, например выбранный ранее пользователем, то этот выбор должен определять сервер. Делает это он не "щелчком", а посредством анализа запросов. Если заведомо известно какой должен быть установлен, по умолчанию например, то устанавливайте ему это свойство.

demoniqus 06.04.2015 14:20

Цитата:

Сообщение от laimas (Сообщение 365185)
>Мне нужно, чтобы click происходил ДО ТОГО, как форма попадет в страницу.

И каким это образом? Если нужно чтобы при добавлении группы, какой-то из ее элементов был установлен, например выбранный ранее пользователем, то этот выбор должен определять сервер. Делает это он не "щелчком", а посредством анализа запросов. Если заведомо известно какой должен быть установлен, по умолчанию например, то устанавливайте ему это свойство.

Сервер об этой radio-группе не знает и знать ему это вообще незачем. Я, наверное, ввел немного в заблуждение, использовав слово "форма". Речь идет не о теге FORM, а о простом фрагменте DOM-дерева. Подготовка и отправка данных идет через AJAX - в противном случае из-за циклических ссылок такие данные отправить нельзя. Эта radio-группа просто не может быть параметром. Она либо есть, если есть форма, либо их обеих вообще нет.
Чтобы максимально облегчить жизнь пользователю, сократить число телодвижений с его стороны, я по умолчанию выбираю первый элемент из radio-группы. Если бы от его состояния не зависели параметры иных компонентов, иные данные, то можно было просто тупо и надежно поставить input.checked = true. Но зависимость есть и потому я вызываю обработчик click(). И я никак не ожидал, что click() не изменит checked, да тем более только в одном браузере.


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