Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Выбор меню


Автор: ежик 27.1.2006, 03:07
Проблема первая:
мы имееи любой список(с именем asd):
Код

<select name="asd" size="1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

и имеем еще такихже списка под одним именем "qwe":
Код

<select name="qwe" size="1">
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
<select name="qwe" size="1">
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<select name="qwe" size="1">
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
</select>
<select name="qwe" size="1">
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
</select>

так вот вопрос как сделать так чтобы при выборе "asd" = 1
появлялось поле "qwe"
Код

<select name="qwe" size="1">
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>

а при выборе "asd" = 2
появлялось поле "qwe"
Код

<select name="qwe" size="1">
<option value="9>9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>

а другие данные не передавались
типа на подобии этого:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<script type="text/javascript" language="javascript1.4">
function Tara(val){
document.getElementById(val).style.display = 'block';
return false;
}
</script>
<body>
<form action="./" method="GET">
<select name="asd" size="1" onChange="Tara(this.options[this.selectedIndex].value);">
<option value="rt">1</option>
<option value="tr">2</option>
<option value="re">3</option>
<option value="yt">4</option>
</select>
<select name="qwe" size="1" id="rt" style="display:none">
<option selected></option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
<select name="qwe" size="1" id="tr" style="display:none">
<option selected></option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<select name="qwe" size="1" id="re" style="display:none">
<option selected></option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
</select>
<select name="qwe" size="1" id="yt" style="display:none">
<option selected></option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
</select>
<input name="" type="submit" value="aadsasd">
</form>
</body>
</html>

Автор: Ciber SLasH 27.1.2006, 04:37
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<title>JavaScript :: Пример отправки выбранного поля в одноимённых SELECT-ах (GET)</title>
<script type='text/javascript'>
function Tara(val, fm_ID){
var obj = document.getElementById(fm_ID).elements;
    for (var i = 0; i < obj.length; i++) {
        if (obj[i].name == 'qwe') {
            if (obj[i].id == val) {
                obj[i].style.display = 'block';
                obj[i].options[0].selected = true;
            } else {
                obj[i].style.display = 'none';
            }
        }
    }
}

function doSubmit(fm, fm_ID) {
var obj = document.getElementById(fm_ID).elements;
    for (var i = 0; i < obj.length; i++) {
        if (obj[i].name == 'qwe' && obj[i].style.display == 'block') {
            fm.appendChild(obj[i]);    // добавляем в отправляемую форму выбранный SELECT
        }
    }
return true
}
</script>
</head>

<body onLoad='document.forms[0].elements[0].focus()'>
<form action='./index.php' method="GET" onSubmit='return doSubmit(this, "hidForm")'>
<select name="asd" size="1" onChange='Tara(this.options[this.selectedIndex].value, "hidForm")'>
<option value="rt">1</option>
<option value="tr">2</option>
<option value="re">3</option>
<option value="yt">4</option>
</select>
<input type="submit" value="submit">
</form>
<!-- Форма с одноимёнными SELECT-ами -->
<form id='hidForm'>
<select id='rt' name="qwe" size="1" style='display: none'>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
<select id='tr' name="qwe" size="1" style='display: none'>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<select id='re' name="qwe" size="1" style='display: none'>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
</select>
<select id='yt' name="qwe" size="1" style='display: none'>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
</select>
</form>
</body>
</html>

Автор: ежик 28.1.2006, 08:12
Ciber SLasH
Спасибо
Вот только одна проблеммммма
эта фишка не работает в IE???!!!

Автор: o.s.a. 28.1.2006, 08:34
ежик, в ИЕ6.0 все прекрасно работает

Ciber SLasH, было бы неплохо, если бы ты добавил в
Код

<select name="asd" size="1" onChange='Tara(this.options[this.selectedIndex].value, "hidForm")'>
<option value="rt">1</option>
<option value="tr">2</option>
<option value="re">3</option>
<option value="yt">4</option>
</select>

пустой option, а то, чтобы появился список от 5 до 8, приходится сначала выбрать 2, а потом 1 smile

Автор: Ciber SLasH 28.1.2006, 14:17
Цитата(o.s.a. @ 28.1.2006, 08:34 Найти цитируемый пост)

пустой option, а то, чтобы появился список от 5 до 8

Тогда лучше удалить style='display: none' в первом скрытом SELECT-е.

Автор: ежик 30.1.2006, 02:58
Пасиба !!!
да работает smile
блин эт я наверное чет затупил!!! smile
а обязательно надо
Код
<body onLoad='document.forms[0].elements[0].focus()'>


Автор: o.s.a. 30.1.2006, 08:11
Цитата(ежик @ 30.1.2006, 04:58 Найти цитируемый пост)

а обязательно надо

Конечно, не обязательно - это же просто фокус на 1-ый селект smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)