Показать сообщение отдельно
  #4 (permalink)  
Старый 10.03.2013, 20:01
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В общем без jQuery довольно жестко получается )
<form action='/index.php' method='POST'>
<select id="mySelectId[1]" name="numer[1]">
<option value='0' selected>0</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
<br>
<select id="mySelectId[2]" name="numer[2]">
<option value='0' selected>0</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
<br>
<select id="mySelectId[3]" name="numer[3]">
<option value='0' selected>0</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
</form>
<script>
(function(){
    var selects = [];
    for (var i = 0; i < 3; i++) {
        var select = document.getElementById('mySelectId['+(i+1)+']');
        select.onchange = (function(i) {
            return function() {selectHandler.call(this, i)}
        })(i);
        selects[i] = {
            element: select,
            value: select.value
        }
    }
    function toggleOption(select, map) {
        for (var i = 0, option; option = select[i]; i++) {
            if (option.value in map) {
                option.style.display = (map[option.value] ? '' : 'none');
            }
        }
    }
    function selectHandler(index) {
        var optionMap = {};
        optionMap[selects[index].value] = 1;
        if (this.value != 0) {
            optionMap[this.value] = 0;
        }
        for (var i = 0, select; select = selects[i]; i++) {
            if (this != select.element) {
                toggleOption(select.element, optionMap);
            }

        }
        selects[index].value = this.value;
    }
})();
</script>

Последний раз редактировалось danik.js, 10.03.2013 в 20:39.
Ответить с цитированием