Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Два зависимых checkbox (https://javascript.ru/forum/dom-window/9685-dva-zavisimykh-checkbox.html)

mike_s 31.05.2010 21:02

Два зависимых 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>

trikadin 31.05.2010 21:23

Пожалуйста, отредактируйте ваш код. Например, заключите его в BB-тег [html].

B~Vladi 31.05.2010 23:20

Цитата:

Сообщение от mike_s
"по феншую-ли" или криво?

Цитата:

Сообщение от mike_s
Новичок.

Ты сам ответил на свой вопрос:)

mike_s 31.05.2010 23:41

Цитата:

Сообщение от B~Vladi (Сообщение 57288)
Ты сам ответил на свой вопрос:)

Ну так дали бы дельный совет...

trikadin 01.06.2010 00:04

А скрипт - в тег [Js].

JsLoveR 01.06.2010 00:12

Цитата:

Сообщение от mike_s
"по феншую-ли" или криво?

Очень криво).

B~Vladi 01.06.2010 00:13

Цитата:

Сообщение от mike_s
Ну так дали бы дельный совет...

Все приходит с опытом. Пару советов дам:
1. Найти элементы можно не только по id. Что касается форм, то можно обращаться и по имени к её элементам. Отвыкай от id.
2. При каждом вызове функции ты ищешь элементы, что есть самое узкое место (обращение к DOM). Сохраняй ссылки на нужные узлы при DOMready или onload.
3. Вставлять текстовые ресурсы в файлы js есть зло. Когда начнёшь работать с щаблонизаторами - поймёшь. Для этого есть несколько решений. В основном - это оформление какого-либо куска кода в виде модуля или плагина, который инициализируется из html-файла (шаблона). Что-то вроде:
new Plugin({
  data1: '',
  data2: '',
  data3: '',
  data4: '',
});

Обычно это делается перед </body>, когда весь DOM уже доступен.
Удачи.


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