Два зависимых checkbox
Новичок. Делал методом проб и ошибок, т.ч. строго не судите.
Вроде всё работает, вопрос только в том, "по феншую-ли" или криво? Задача 1: Сделать видимым только один checkbox из двух, но при снятии выделения с видимого, оно (выделение) должно возвращаться на скрытый. Задача 2: При выделении или снятии выделения, показывать какой из параметров выбран. <form action="cart" method="get"> <input type="checkbox" name="variant_id" value='1' onchange="display_variant_1(this.value);" id='1' checked="checked" style=" display:none;" /> <input type="checkbox" name="variant_id" value='2' onchange="display_variant_1(this.value);" id='2' /><label for='2'>item №2</label><br /> <span id="variant_price_1">По-умолчанию item №1</span> <script type="text/javascript"> var variants_prices = new Array; variants_prices[1] = 'Вернули item №1'; variants_prices[2] = 'Выбрали item №2'; function display_variant_1() { if(document.getElementById('2').checked == true){document.getElementById('1').checked = false;document.getElementById('variant_price_1').innerHTML = variants_prices[2];}else{document.getElementById('1').checked = true;document.getElementById('variant_price_1').innerHTML = variants_prices[1];} } </script> </form> |
Пожалуйста, отредактируйте ваш код. Например, заключите его в BB-тег [html].
|
Цитата:
Цитата:
|
Цитата:
|
А скрипт - в тег [Js].
|
Цитата:
|
Цитата:
1. Найти элементы можно не только по id. Что касается форм, то можно обращаться и по имени к её элементам. Отвыкай от id. 2. При каждом вызове функции ты ищешь элементы, что есть самое узкое место (обращение к DOM). Сохраняй ссылки на нужные узлы при DOMready или onload. 3. Вставлять текстовые ресурсы в файлы js есть зло. Когда начнёшь работать с щаблонизаторами - поймёшь. Для этого есть несколько решений. В основном - это оформление какого-либо куска кода в виде модуля или плагина, который инициализируется из html-файла (шаблона). Что-то вроде: new Plugin({ data1: '', data2: '', data3: '', data4: '', }); Обычно это делается перед </body>, когда весь DOM уже доступен. Удачи. |
Часовой пояс GMT +3, время: 17:00. |