Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   checkbox, select и условие (https://javascript.ru/forum/misc/59110-checkbox-select-i-uslovie.html)

Ermite 28.10.2015 13:51

checkbox, select и условие
 
Вложений: 1
Соорудил вот такой громоздкий код:
function show_alert()
{


  if (R1.checked) {
  r11=300;
  } else {
  r11=0;
  }

    if (R2.checked) {
  r22=500;
  } else {
  r22=0;
  }
    if (R3.checked) {
  r33=1000;
  } else {
  r33=0;
  }
    if (R4.checked) {
  r44=1500;
  } else {
  r44=0;
  }
  if (E1.checked) {
  e11=1500;
  } else {
  e11=0;
  }
  if (E2.checked) {
  e22=1500;
  } else {
  e22=0;
  }
  if (E3.checked) {
  e33=1500;
  } else {
  e33=0;
  }
  if (E4.checked) {
  e44=1500;
  } else {
  e44=0;
  }
  if (L1.checked) {
  l11=1500;
  } else {
  l11=0;
  }
  if (L2.checked) {
  l22=1500;
  } else {
  l22=0;
  }
  if (L3.checked) {
  l33=1500;
  } else {
  l33=0;
  }
  if (L4.checked) {
  l44=1500;
  } else {
  l44=0;
  }
  if (M1.checked) {
  m11=1500;
  } else {
  m11=0;
  }
  if (M2.checked) {
  m22=1500;
  } else {
  m22=0;
  }
  if (M3.checked) {
  m33=1500;
  } else {
  m33=0;
  }
  if (M4.checked) {
  m44=1500;
  } else {
  m44=0;
  }
  
  www.value=r11*1 + r22*1 + r33*1 + r44*1 + e11*1 + e22*1 + e33*1 + e44*1 + l11*1 + l22*1 + l33*1 + l44*1 + m11*1 + m22*1 + m33*1 + m44*1;
  
}

</script>


Все, вроде, работает исправно, но стоит мне начать добавлять в скрипт упоминание о select, как все перестает работать. Например:

function show_alert()
{


  if (R1.checked) {
  r11=300;
  } else {
  r11=0;
  }

    if (R2.checked) {
  r22=500;
  } else {
  r22=0;
  }
    if (R3.checked) {
  r33=1000;
  } else {
  r33=0;
  }
    if (R4.checked) {
  r44=1500;
  } else {
  r44=0;
  }
  if (E1.checked) {
  e11=1500;
  } else {
  e11=0;
  }
  if (E2.checked) {
  e22=1500;
  } else {
  e22=0;
  }
  if (E3.checked) {
  e33=1500;
  } else {
  e33=0;
  }
  if (E4.checked) {
  e44=1500;
  } else {
  e44=0;
  }
  if (L1.checked) {
  l11=1500;
  } else {
  l11=0;
  }
  if (L2.checked) {
  l22=1500;
  } else {
  l22=0;
  }
  if (L3.checked) {
  l33=1500;
  } else {
  l33=0;
  }
  if (L4.checked) {
  l44=1500;
  } else {
  l44=0;
  }
  if (M1.checked) {
  m11=1500;
  } else {
  m11=0;
  }
  if (M2.checked) {
  m22=1500;
  } else {
  m22=0;
  }
  if (M3.checked) {
  m33=1500;
  } else {
  m33=0;
  }
  if (M4.checked) {
  m44=1500;
  } else {
  m44=0;
  }
  
  selr1 = document.getElementById("sr1").options.selectedIndex;
  valr1= document.getElementById("sr1").options[selind].value;

  www.value=r11*1 + r22*1 + r33*1 + r44*1 + e11*1 + e22*1 + e33*1 + e44*1 + l11*1 + l22*1 + l33*1 + l44*1 + m11*1 + m22*1 + m33*1 + m44*1;
  
}


По отдельности они работают исправно, но стоит их соединить, как все рушится.
А теперь что я хочу сделать: чтобы при активации чекбокса можно было выбрать число, на которое умножить его значение. Например, если выбрать чекбокс R1 и число 5 из списка, то на выходе получится 25000. И так со всеми возможными вариантами активации чекбоксов и выбора чисел.
К сообщению прикрепил весь код, т.к. тут он не влезает.
PS я понимаю, что мой код иррационален, но сделать по-другому я так и не смог, построить сложный массив для меня пока что нереально)

ksa 28.10.2015 14:34

Цитата:

Сообщение от Ermite
Соорудил вот такой громоздкий код

Так конь не ходит. (с) :nono:

Ermite 28.10.2015 15:36

ksa,
А как он ходит? Я просто не совсем могу в js :write:

ksa 28.10.2015 15:49

Цитата:

Сообщение от Ermite
Я просто не совсем могу в js

Так в любом языке есть циклы... :)
И много чего другого, что позволяет значительно сократить код.

Ermite 28.10.2015 16:59

ksa,
ну, я вообще ни в каком языке не могу) А насчет циклов - это хорошая идея, надо будет подумать)
А что мне делать с моей проблемой?
Из-за чего происходит конфликт? Почему сразу после того, как я вставлю этот код:
selr1 = document.getElementById("sr1").options.selectedIndex;
valr1= document.getElementById("sr1").options[selind].value;

Все перестает работать? Связано ли это с кучей условий?

рони 28.10.2015 17:23

Ermite,
:cray:

selr1 = document.getElementById("sr1").selectedIndex; 


valr1= document.getElementById("sr1").options[selr1].value;

Ermite 28.10.2015 18:07

рони,
ясно :D Спасибо ещё раз)

рони 28.10.2015 18:20

Ermite,
это
selr1 = document.getElementById("sr1").selectedIndex; 


valr1= document.getElementById("sr1").options[selr1].value;

так будет короче
valr1= document.getElementById("sr1").value;


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