помогите с отображением слоя!
Модератор: Duncon
помогите с отображением слоя!
Такая беда, есть два выпадающих списка. Первый: "есть" или "нет", если выбрано есть-показать второй
Вот код:
html:
<select name="Kids" class="item" onchange="count_kids(this)">
<option value="n" class="item" {if $Kids == "n"}selected{/if}>Нет</option>
<option value="y" class="item" {if $Kids == "y"}selected{/if}>Есть</option>
</select></td>
<td>
<div id="layer_kids" style="position: relative; visibility:hidden" >
<select name="c_kids" class="item">
<option value="one">Один</option>
<option value="two">Два</option>
<option value="three">Три</option>
<option value="more">Более</option>
</select></div>
Скрипт:
function count_kids(sep){
if (sep == 'y'){
eval('document.all["layer_kids"].style.visibility = "visible"');
}
else {
eval('document.all["layer_kids"].style.visibility = "hidden"');
}
}
Вот код:
html:
<select name="Kids" class="item" onchange="count_kids(this)">
<option value="n" class="item" {if $Kids == "n"}selected{/if}>Нет</option>
<option value="y" class="item" {if $Kids == "y"}selected{/if}>Есть</option>
</select></td>
<td>
<div id="layer_kids" style="position: relative; visibility:hidden" >
<select name="c_kids" class="item">
<option value="one">Один</option>
<option value="two">Два</option>
<option value="three">Три</option>
<option value="more">Более</option>
</select></div>
Скрипт:
function count_kids(sep){
if (sep == 'y'){
eval('document.all["layer_kids"].style.visibility = "visible"');
}
else {
eval('document.all["layer_kids"].style.visibility = "hidden"');
}
}
Все, тему можно закрывать. Нашел ошибку:
Вызывать функцию нужно так:
onchange="count_kids(this.value)"
В этом и все дело
Вызывать функцию нужно так:
onchange="count_kids(this.value)"
В этом и все дело

Еще найди, что eval тут нафиг не нужен и что document.all работает только под IE.