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


Автор: MoLeX 17.5.2008, 08:09
прива всем. есть следующий скрипт:

Код

<html>
<head> 
<title>USER</title> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script type="text/javascript" src="linkedselect.js"></script>
<meta http-equiv="Content-Language" content="ru" /> 
<script type="text/javascript">
function input_new(id)
{
    if(document.getElementById(id).value == "noy")
    {
        document.getElementById(id+"_id").innerHTML = "<input type=\"text\" name="+id+">";
    }
}
</script>
</head>
<body>

<table border="0">
<tr>
    <td>Укажите предприятие:</td>
    <td>&nbsp;</td>
    <td>
        <div id="plant_id">
            <select name="plant" OnChange="input_new('plant');" id="plant">
                <option>Укажите предприятие</option>
                <option value="1">ООО КУМЗ</option>
                <option value="2">ООО УАЗ</option>
                <option></option>
                <option value="noy">его нет в списке...</option>
            </select>
        </div>
    </td>
</tr>

<tr>
    <td>Укажите цех, отдел:</td>
    <td>&nbsp;</td>
    <td>
        <div id="shop_id">
            <select name="shop" OnChange="input_new('shop');" id="shop"></select>
        </div>
    </td>
</tr>

<tr>
    <td>Укажите ФИО:</td>
    <td>&nbsp;</td>
    <td>
        <div id="user_id">
            <select name="user" OnChange="input_new('user');" id="user"></select>
        </div>
    </td>
</tr>
</table>

<script type="text/javascript">
// Создаем новый объект связанных списков
var syncList1 = new syncList;

// Определяем значения подчиненных списков (2 и 3 селектов)
syncList1.dataList = {
                    //    ООО КУМЗ
                        '1':
                        {
                            '1_1':'№ 1',
                            '1_2':'№ 2',
                            '':'',
                            'noy':'его нет в списке...'
                        },
                        
                    // ООО УАЗ
                        '2':
                        {
                            '1_3':'№ 3',
                            '1_4':'№ 4',
                            '':'',
                            'noy':'его нет в списке...'
                        },                        
                        
                        
                    // цех номер 1                    
                        '1_1':
                        {
                            '11_11':'user 11',
                            '11_12':'user 12',
                            '':'',
                            'noy':'его нет в списке...'
                        },
                        
                    // цех номер 2                    
                        '1_2':
                        {
                            '11_21':'user 21',
                            '11_22':'user 22',
                            '':'',
                            'noy':'его нет в списке...'
                        },
                        
                    // цех номер 3                    
                        '1_3':
                        {
                            '11_31':'user 31',
                            '11_32':'user 32',
                            '':'',
                            'noy':'его нет в списке...'
                        },
                        
                    // цех номер 4                    
                        '1_4':
                        {
                            '11_41':'user 41',
                            '11_42':'user 42',
                            '':'',
                            'noy':'его нет в списке...'
                        }                                                                        
                    };

// Включаем синхронизацию связанных списков
syncList1.sync("plant", "shop", "user");
</script>
</body>
</html>


необходимо при выборе в селекте пункта его нет в списке... отображать поле инпут. т.е.
если нет завода в списке то отображаем 3 поля (предприятие, цех, фамилия)
если есть завод но нету цеха то отображаем 2 поля (цех и фамилию)
если есть и завод и цех но нету фамилии в списке то отображаем поле с водом фамилии.

пока что работает только последний пункт  smile 

Автор: Ghirik 17.5.2008, 17:13
Откуда у вас взялся syncList?

Почитайте http://www.tigir.com/javascript_select.htm.

Автор: MoLeX 18.5.2008, 06:03
Ghirik, ты не поверишь, именно от http://www.tigir.com/javascript_select.htm я это и взял. мне только малость модернизировать его надо, а не получается чего-то. а модернизация в плане:

Цитата(MoLeX @  17.5.2008,  08:09 Найти цитируемый пост)
необходимо при выборе в селекте пункта его нет в списке... отображать поле инпут. т.е.если нет завода в списке то отображаем 3 поля (предприятие, цех, фамилия)если есть завод но нету цеха то отображаем 2 поля (цех и фамилию)если есть и завод и цех но нету фамилии в списке то отображаем поле с водом фамилии.


Автор: MoLeX 18.5.2008, 06:21
вот и решил проблему))) может не так красиво но зато работает  smile 
Код

<script type="text/javascript">
function input_new()
{
    if(document.getElementById("plant").value == "noy")
    {
        document.getElementById("plant_id").innerHTML = "<input type=\"text\" name=\"plant\">";
        document.getElementById("shop_id").innerHTML = "<input type=\"text\" name=\"shop\">";
        document.getElementById("user_id").innerHTML = "<input type=\"text\" name=\"user\">";
    }
    
    if(document.getElementById("shop").value == "noy")
    {
        document.getElementById("shop_id").innerHTML = "<input type=\"text\" name=\"shop\">";
        document.getElementById("user_id").innerHTML = "<input type=\"text\" name=\"user\">";
    }
    
    if(document.getElementById("user").value == "noy")
    {
        document.getElementById("user_id").innerHTML = "<input type=\"text\" name=\"user\">";
    }        
}
</script>

Автор: Ghirik 18.5.2008, 14:19
Ну вот, такое хорошее начинание, так криво закончилось. smile 
Вы, видимо, не внимательно прочитали статью. Там есть html-код страницы, а есть ещё и http://www.tigir.com/js/linkedselect.js  библиотеки, который нужно положить в ту же папку, где сама страница. Вначале запустите в том виде, как предлагает автор, а уже потом вносите свои изменения, следя за соблюдением работоспособности скрипта.

Да, сам http://www.tigir.com/js/linkedselect.js содержит просто исчерпывающие комментарии. Почитайте, и станет всё понятно.

Автор: MoLeX 19.5.2008, 05:57
Ghirik, у меня ощущение что вы что-то пропустили в моей писанине. скрипт успешно вставлен иработает, мне нужно его было малость модернизировать что я и сделал.

Автор: Ghirik 19.5.2008, 14:21
Цитата

Ghirik, у меня ощущение что вы что-то пропустили в моей писанине.


Всё! Всё пропустил! smile 

Прошу считать мои посты в этой теме несуразной глупостью.  smile 

Автор: MoLeX 20.5.2008, 08:43
Ghirik, ерунда. забыли и закрыли тему  smile

Добавлено через 1 минуту и 10 секунд

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