Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.01.2013, 14:17
Аспирант
Отправить личное сообщение для SeGun Посмотреть профиль Найти все сообщения от SeGun
 
Регистрация: 29.01.2013
Сообщений: 43

Ограничение значений в Select
Здравствуйте.
Имеются 2 Select(a).
В первом последовательно числа от 1 до 12, во вторм от 0 до 11

Задача:
Ограничить выбор во втором Select до значения которое в сумме числа с первым даст максимальное значение 12.
Подскажите если знаете.

Последний раз редактировалось SeGun, 31.01.2013 в 14:27. Причина: Уточнил
Ответить с цитированием
  #2 (permalink)  
Старый 31.01.2013, 14:20
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

SeGun,
Выложите HTML, (*и второе - есть input type=number ему и заранее ограничение удобней задать и нагляднее
Ответить с цитированием
  #3 (permalink)  
Старый 31.01.2013, 14:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

SeGun,

<!DOCTYPE HTML>
<html>
<head>
  <title></title>
  <meta charset="utf-8" />
</head>

<body>
<select>
                      <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>
                      <option value="6">6</option>
                      <option value="7">7</option>
                      <option value="8">8</option>
                      <option value="9">9</option>
  	                  <option value="10">10</option>
                      <option value="11">11</option>
                      <option value="12">12</option>

 </select>
 <select>
                      <option value="0">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>
                      <option value="6">6</option>
                      <option value="7">7</option>
                      <option value="8">8</option>
                      <option value="9">9</option>
  	                  <option value="10">10</option>
                      <option value="11">11</option>


 </select>

<script>
    var select = document.getElementsByTagName('select')[0];

    select.addEventListener('change', function() {
        var i = this.selectedIndex
        var select = document.getElementsByTagName('select')[1];
        select.options.length=0
        for (var k=0; k<12-i; k++)  {
           select.options[k] = new Option(k, k);
        }
    });
</script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 31.01.2013, 16:33
Аспирант
Отправить личное сообщение для SeGun Посмотреть профиль Найти все сообщения от SeGun
 
Регистрация: 29.01.2013
Сообщений: 43

И правда профессура!
Спасибо огромное!
Ответить с цитированием
  #5 (permalink)  
Старый 31.01.2013, 17:21
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Прикола ради слегка модифицировал скрипт. Во-первых, можно избавиться от множественных new Option после каждого изменения, во-вторых, в моем варианте сохраняются первоначальный текст, (если от отличается от просто циферок)
<script type="text/javascript">
  (function() {
    var select2 = document.getElementsByTagName('select')[1];
    var optionStore = [];
    for( var i = 0; i < select2.options.length; ++i )
      optionStore[i] = select2.options[i];

    var select1 = document.getElementsByTagName('select')[0];
    select1.addEventListener('change', function() {
      var i = this.selectedIndex
      select2.options.length=0
      for (var k=0; k<12-i; k++)
        select2.options[k] = optionStore[k];
    });
  } )();
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 31.01.2013, 17:48
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Или даже так:
<script type="text/javascript">
  (function() {
    var select2 = document.getElementsByTagName('select')[1];
    var optionStore = [];
    for( var i = 0; i < select2.options.length; ++i )
      optionStore[i] = select2.options[i];

    var select1 = document.getElementsByTagName('select')[0];
    select1.addEventListener('change', function() {
      var i = this.selectedIndex

      if( select2.options.length >= 12-i )
        select2.options.length = 12-i;
      else
        for (var k=select2.options.length; k<12-i; k++)
          select2.options[k] = optionStore[k];
    });
  } )();
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена значений в select derbass jQuery 2 23.01.2013 20:10
Установка кнопкой всех значений SELECT одинаково Лавсановые Волокна Элементы интерфейса 3 28.12.2010 13:28
Проблема с динамическим формированием select elepsion jQuery 1 31.10.2010 14:31
select multiple передать много значений Mozger Events/DOM/Window 3 22.05.2010 02:43
Обработка значений select multiple разум Я не знаю javascript 7 08.06.2009 14:09