Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите с radio button. Не стандартное решение (https://javascript.ru/forum/dom-window/9146-pomogite-s-radio-button-ne-standartnoe-reshenie.html)

dreckin 01.05.2010 18:23

И хотелос бы чуть разобраться в коде чтоб понять и больше не возвращатся к теме.

Итак:
var R1 = document.getElementsByName("R1")[0], R2 = document.getElementsByName("R2")[0];
Определяет переменные R1 и R2 ?

R1.onclick = R2.onclick = function () { /* Не понял
        var other = this == R1 ? R2 : R1; /* Не понял
        if (this.checked) {       /* Если выбран один radio то другой выбрать нельзя
            other.checked = false;
        }
    };


Будьте так добры обьясните пожалуйста.

dreckin 01.05.2010 18:28

Цитата:

Сообщение от Gvozd (Сообщение 53859)
на крайняк, чтобы сохранить смысл учебного задания(я правильно понял?), задайте им имена R[1] и R[2]

Да поняли правильно а куда задать?
var R1 = document.getElementsByName("R1")[0], R2 = document.getElementsByName("R2")[0];
здесь?

Gvozd 01.05.2010 18:40

R1.onclick = R2.onclick = function () { /* создается анонимная функция, и задается в качестве обработчика щелчка для обоих элементов
        var other = this == R1 ? R2 : R1; /* гуглите тернарный оператор.по сути краткая запись для else-if, в данном случае
        if (this.checked) {       /* Если выбран один radio то другой выбрать нельзя
            other.checked = false;
        }
    };

Цитата:

Сообщение от dreckin
Да поняли правильно а куда задать?
var R1 = document.getElementsByName("R1")[0], R2 = document.getElementsByName("R2")[0]; здесь?

здесь
<input type="radio" name="R[1]" value="one">
<input type="radio" name="R[2]" value="two">

и здесь
var R1 = document.getElementsByName("R[1]")[0], R2 = document.getElementsByName("R[2]")[0];

dreckin 01.05.2010 18:47

Спасибо, вроде понял.
Скачал еще книжок с этого сайта. Почитаю

Arom 01.05.2010 22:00

А разве хорошо код javascript прямо перед </body> размещать?
Страница еще не успевает загрузиться, пользователь уже начинает щелкать на кнопки, а они не срабатывают...

Octane 01.05.2010 22:20

Цитата:

Сообщение от Arom
Страница еще не успевает загрузиться, пользователь уже начинает щелкать на кнопки, а они не срабатывают...

Так как скрипты грузятся не асинхронно, то разница во времени между срабатывание скрипта, подключенного перед </body>, и запущенного по DOMContentLoaded, будет незаметна для пользователя, а window.onload иногда приходится слишком долго ждать.


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