отключить элементы
Добрый день, столкнулся с такой проблеймой :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, время: 23:03. |