отключить элементы
Добрый день, столкнулся с такой проблеймой :help:
вообще есть val = выбранная опция из селекта она включает выбранный элемент if (val >= 0) { var service = document.getElementById('srv'+val); service.style.display = 'block'; } как сделать чтоб отключить все остальные то бишь ('srv'+val) это включаемый элемент val цыфры если выбран элемент 1 то ему присваивается display = 'block'; а все что меньше 1 или больше присваивается display = 'none'; заранее спасибо! весь код function calc() { var sel = document.getElementById("votr"); // Получаем наш список var val = sel.options[sel.selectedIndex].value; // Получаем значение выделенного элемента (в нашем случае fruit2). if (val >= 0) { var service = document.getElementById('srv'+val); service.style.display = 'block'; } } |
promo,
обходить все элементы и присваивать стиль -- совпадает индекс 'block' иначе 'none' |
А пример можно, как лучше!
|
for (var i = 0, l = sel.options.length; i < l; i++) { var el = document.getElementById('src' + sel.options[i].value); if (i == sel.selectedIndex) { el.style.display = 'block'; } else { el.style.display = 'none'; } } |
ошибка
![]() строка el.style.display = 'none'; весь код сейчас function calc() { var sel = document.getElementById("votr"); // Получаем наш список var val = sel.options[sel.selectedIndex].value; // Получаем значение выделенного элемента (в нашем случае fruit2). var csrv1 = document.getElementById('srv'+val); var cost = csrv1.value; str_v=cost.replace(/[_#]+/,' ').replace(/ +/, ' '); var reg=/([0-9A-Za-z\s\w+]+),([0-9A-Za-z]+)/; var arr=reg.exec(str_v); var term = document.getElementById('term'); var values = term.value; var days = 30; if (values == '1') { days = 0.70; }; if (values == '2') { days = 1; }; if (values == '3') { days = 2; }; if (values == '4') { days = 3; }; if (values == '5') { days = 6; }; for (var i = 0, l = sel.options.length; i < l; i++) { var el = document.getElementById('srv'+sel.options[i].value); if (i == sel.selectedIndex) { el.style.display = 'block'; } else { el.style.display = 'none'; } } if (values == '1') { days = 0.70; }; if (values == '2') { days = 1; }; if (values == '3') { days = 2; }; if (values == '4') { days = 3; }; if (values == '5') { days = 6; }; var costnew = days * arr[2]; var cena = document.getElementById('cena'); if(costnew > 0) { cena.innerHTML = costnew; } else { cena.innerHTML = "0"; } } |
promo,
добавьте проверку на существование элемента el && (el.style.display = 'block'); el && (el.style.display = 'none'); |
Цитата:
|
Часовой пояс GMT +3, время: 07:09. |