Условие, если значение не найдено
Получаю значение из select'a.
var eng = document.getElementById('select_engine').selectedIndex;
Когда значение получено, все понятно. Но как сделать условие, если на странице нет этого select'a? Проще говоря: Если значение получено, то .... Иначе ? |
Извиняюсь, ввел в заблуждение. Зато понял, почему не сработало.
Добавлю, полный вывод такой:
function engine() {
var eng = document.getElementById('select_engine').selectedIndex;
switch (eng) {
case 0:
$("#price_item").text("Цена 1");
break;
default:
$("#price_item").text("Цена 2");
}
}
Срабатывает на onchange="engine();" Условие такое: если на странице есть select и выбран первый option (value=0), то выводить "Цена 1", иначе "Цена 2", а если на странице select'a нет, то выводить "Цена 2". Как это можно грамотнее написать? |
К сожаление не срабатывает на странице, где select не выводится. Видимо, потому, что не срабатывает событие onchange="engine();".
|
eevr,
Приведите используемую HTML разметку, так как не совсем понятно, что вы имеете и как делаете
<select onchange="engine(this)">
<option value="0">Сделайте свой выбор</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<div id="price_item"></div>
<script>
function engine(el) {
var price_txt = document.getElementById('price_item');
var price = ["", "Цена 1", "Цена 2"];
var sel = el.options[el.options.selectedIndex].value;
price_txt.innerHTML = price[sel];
}
</script>
|
В общем так оно и есть
<select name="options" onchange="engine();" id="select_engine">
<option>Выбрать</option>
<option value="25">Паметр 1</option>
<option value="26">Параметр 2</option>
</select>
<p id="price_item"></p>
<script>
function engine() {
var eng = document.getElementById('select_engine');
if (eng && !eng.selectedIndex) {
$("#price_item").text("Цена 1");
} else {
$("#price_item").text("Цена 2");
}
}
</script>
Дело в том, что одном случае <select> выводится, а другом его вообще нет. Т.е. как я понимаю, события не возникает. Там, где <select> есть, все правильно работает, а там, где его нет ничего не происходит (в моем понимании, так и должно быть). Вот и взываю о помощи, как это грамотно решить? |
Дык просто проверяете есть ли элемент на странице, и если нет, то вызываете свою engine сами.
window.onload = function() {
if (!document.getElementById('select_engine')) {
engine();
};
}
//Если хочется записать короче, то:
window.onload = function() {
document.getElementById('select_engine') || engine();
}
|
Большое спасибо за ответы! Разобрался
|
| Часовой пояс GMT +3, время: 18:06. |