FireMaster
Guest
Динамический select
Есть форма, большая форма, в ней около 15 полей, построена она с помощью обыкновенных HTML таблиц, в данной форме имеется несколько полей типа select, задача: при смене варианта в select`e открывать дополнительные поля select, например:
<tr><td>
<select name="blah"><option value=""><option value="raz-raz">raz-raz<option value="dva-dva">dva-dva</select>
</td></tr>
по дефолту у нас ничего не выбрано, если пользователь тыкает raz-raz то опять же ничего не появляется, но если он выбирает dva-dva то под этим select`om появляются еще 2 штуки:
<tr><td>
<select name="blahA"><option value=""><option value="hejhej">hejhej<option value="ee">ee</select>
</td></tr>
<tr><td>
<select name="blahB"><option value=""><option value="sup">sup<option value="yada">yada</select>
</td></tr>
После долгих экспериментов я пришел к вот этому скрипту
<script>
<!--
if (document.layers) {
visible='show';
hidden='hide';
} else {
if (document.all) {
visible='visible';
hidden='hidden';
}
}
function priniat_nepriniat(selected) {
if (selected == "dva-dva") {
if (document.all) {
selectitem = document.all["selection"].style;
}
if (selectitem.visibility==hidden) {
selectitem.visibility=visible;
}
} else {
if (document.all) {
selectitem = document.all["selection"].style;
}
selectitem.visibility=hidden;
}
}
-->
</script>
мысль думаю понятна, используем <div> и по событию селекта onChange делаем его видимым или невидимым, НО во-первых по скольку форма у меня большая, и все сделано через таблицу, то <div> тэги <td> и <tr> игнорирует, а описывать для каждого selecta <div>`ы это извращение, а во-вторых когда <div> невидимый то место просто пустует, поэтому если у кого-то есть мысли по поводу решения проблемы, которую я описал, пожалуйста выскажитесь. Спасибо.
Есть форма, большая форма, в ней около 15 полей, построена она с помощью обыкновенных HTML таблиц, в данной форме имеется несколько полей типа select, задача: при смене варианта в select`e открывать дополнительные поля select, например:
<tr><td>
<select name="blah"><option value=""><option value="raz-raz">raz-raz<option value="dva-dva">dva-dva</select>
</td></tr>
по дефолту у нас ничего не выбрано, если пользователь тыкает raz-raz то опять же ничего не появляется, но если он выбирает dva-dva то под этим select`om появляются еще 2 штуки:
<tr><td>
<select name="blahA"><option value=""><option value="hejhej">hejhej<option value="ee">ee</select>
</td></tr>
<tr><td>
<select name="blahB"><option value=""><option value="sup">sup<option value="yada">yada</select>
</td></tr>
После долгих экспериментов я пришел к вот этому скрипту
<script>
<!--
if (document.layers) {
visible='show';
hidden='hide';
} else {
if (document.all) {
visible='visible';
hidden='hidden';
}
}
function priniat_nepriniat(selected) {
if (selected == "dva-dva") {
if (document.all) {
selectitem = document.all["selection"].style;
}
if (selectitem.visibility==hidden) {
selectitem.visibility=visible;
}
} else {
if (document.all) {
selectitem = document.all["selection"].style;
}
selectitem.visibility=hidden;
}
}
-->
</script>
мысль думаю понятна, используем <div> и по событию селекта onChange делаем его видимым или невидимым, НО во-первых по скольку форма у меня большая, и все сделано через таблицу, то <div> тэги <td> и <tr> игнорирует, а описывать для каждого selecta <div>`ы это извращение, а во-вторых когда <div> невидимый то место просто пустует, поэтому если у кого-то есть мысли по поводу решения проблемы, которую я описал, пожалуйста выскажитесь. Спасибо.