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


Автор: MoLeX 18.1.2008, 12:17
имеется скрипт следующего содержания:
Код

<html>
<head>
<title>Select</title>
<script type="text/javascript">

var regiondb = new Object()
regiondb["2"] = [{value:"4", text:"Группа 4"}, 
                 {value:"6", text:"Группа 6"},
                 {value:"9", text:"Группа 9"}];
regiondb["1"] = [{value:"1", text:"Группа 1"}];

regiondb["0"] = [{value:"0", text:"Групп нету"}];


function setCities(chooser) {
    var cityChooser = chooser.form.elements["group"];
    // обнуляем список
    cityChooser.options.length = 0;
    // получаем value для массива regiondb
    var choice = chooser.options[chooser.selectedIndex].value;
    var db = regiondb[choice];
    // вставляем первый элемент
    cityChooser.options[0] = new Option("Группа: ", "", true, false);
    if (choice != "") {
        for (var i = 0; i < db.length; i++) {
            cityChooser.options[i + 1] = new Option(db[i].text, db[i].value);
        }
    }
}

</script>
</head>
<body>
<form name="asdasdasda" action="">
    <select name="continent" onchange="setCities(this)">
        <option value="" selected>Город: </option>
        <option value="2">Город 2</option>
        <option value="1">Город 1</option>
        <option value="0">Город 0</option>
    </select>&nbsp;
    <select name="group">
        <option value="" selected>Группа: </option>
    </select>
</form>
</body>
</html>


необходимо после выбора города отобразить дополнительное поле intup с кнопокой - Создать группу  smile 

 smile 

Автор: Astraller 18.1.2008, 13:09
Как вариант:
Код

<html>
<head>
<title>Select</title>
<script type="text/javascript">
var regiondb = new Object()
regiondb["2"] = [{value:"4", text:"Группа 4"}, 
                 {value:"6", text:"Группа 6"},
                 {value:"9", text:"Группа 9"}];
regiondb["1"] = [{value:"1", text:"Группа 1"}];

function setCities(chooser) {
    var cityChooser = chooser.form.elements["group"];
    // обнуляем список
    cityChooser.options.length = 0;
    // получаем value для массива regiondb
    var choice = chooser.options[chooser.selectedIndex].value;
    if (regiondb[choice]){
    db = regiondb[choice];
    // вставляем первый элемент
    cityChooser.options[0] = new Option("Группа: ", "", true, false);
    if (choice != "") {
            for (var i = 0; i < db.length; i++) {
                cityChooser.options[i + 1] = new Option(db[i].text, db[i].value);
            }
    }
        chooser.form.innerHTML+="<input type='text' value='Йа инпутко'>";
    }else{
        cityChooser.options[i + 1] = new Option("Нет групп.", "0");
        chooser.form.innerHTML+="<input type='text' value='Йа инпутко'><div class='panelAlert'>Нет групп, мля!</div>";
    }                                                           
}

</script>
</head>
<body>
<form name="asdasdasda" action="">
    <select name="continent" onchange="setCities(this)">
        <option value="" selected>Город: </option>
        <option value="2">Город 2</option>
        <option value="1">Город 1</option>
        <option value="0">Город 0</option>
    </select>&nbsp;
    <select name="group">
        <option value="" selected>Группа: </option>
    </select>
</form>
</body>
</html>


Не пинать - писал на коленке.

Автор: MoLeX 18.1.2008, 15:17
скриптик не работает  smile, а с js я плохо дружу и нечего не получается  smile 

Автор: Astraller 19.1.2008, 11:19
Поправил. Когда болею - хреново соображаю  smile 

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