Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.05.2014, 05:46
Интересующийся
Отправить личное сообщение для icehummer Посмотреть профиль Найти все сообщения от icehummer
 
Регистрация: 08.05.2014
Сообщений: 10

Изменять содержание <SELECT> в зависимости от значения введенного в <INPUT>
Доброго времени суток!
Есть небольшая задачка:
Суть формы в том, чтобы добавлять в базу новые автомобили, но что бы не вводить марки авто я решил вставить <SELECT> + к существующему <INPUT>.
Суть сводится к тому что в <SELECT> уже есть какое то количество марок автомобиля, хочу что бы при заполнении <INPUT> значения из <SELECT> удалялись не соответствующие содержанию <INPUT>.

<input name="marks">

<select size="6" id="marks_s">
<option disabled>Выберете марку</option>
...
<option value="BMW">BMW</option>
<option value="AUDI">AUDI</option>
...
</select>
Желательно на чистом Java! Не хочу пока в jquery залезать.
Заранее всем спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 08.05.2014, 06:48
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от icehummer Посмотреть сообщение
Желательно на чистом Java!
Месье знает толк в извращениях. Только тогда форумом ошиблись - данный посвящен JavaScript.
Ну а вообще первое что пришло на ум:
<!DOCTYPE HTML>
<html>
  <head>
  <meta charset="utf-8">
  </head>
  <body>
<input name="marks" id="inp">

 <select size="6" id="marks_s">
   <option disabled>Выберете марку</option>
   <option value="BMW">BMW</option>
   <option value="AUDI">AUDI</option>
   <option value="aaa">aaa</option>
   <option value="bbb">bbb</option>
   <option value="SUBARU">SUBARU</option>
 </select>

<script>
var options = document.querySelectorAll('#marks_s>option');
document.getElementById('inp').oninput = function() {
  var select = document.getElementById('marks_s');
  var regExp = new RegExp(this.value, 'i');
  for(var i = 0; i < options.length; i++) {
    if (!regExp.exec(options[i].value)) {
      if ( select.contains(options[i]) ) select.removeChild(options[i]);
    } else {
        select.appendChild(options[i]);
      }
  }
}
</script>
  </body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 08.05.2014, 07:05
Интересующийся
Отправить личное сообщение для icehummer Посмотреть профиль Найти все сообщения от icehummer
 
Регистрация: 08.05.2014
Сообщений: 10

Спасибо огромное за мобильный ответ!!! То что нужно!
Ответить с цитированием
  #4 (permalink)  
Старый 08.05.2014, 07:11
Интересующийся
Отправить личное сообщение для icehummer Посмотреть профиль Найти все сообщения от icehummer
 
Регистрация: 08.05.2014
Сообщений: 10

Вот бы еще здорово с пояснением))
Ответить с цитированием
  #5 (permalink)  
Старый 08.05.2014, 08:15
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Чего там пояснять то? Сохраняются option в переменной и при событии input циклом сравниваются их value с регуляркой, созданной на основе значения в инпуте и в зависимости от результата добавляются или убираются из селекта.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое изменение значений диаграммы в зависимости от значения ползунков Volchen0ck Events/DOM/Window 8 23.04.2014 13:15
Отобразить изображение в зависимости от значения переменной snake Javascript под браузер 4 05.12.2013 15:42
Разные значения в зависимости от опций Batyabest Events/DOM/Window 28 26.11.2013 19:40
Заполнен значениями элемент <select> из бд, в зависимости от значения второго <select basaparov jQuery 1 14.10.2012 22:02
Вытащить со страницы все значения name и value из тегов <input> qwr938 Общие вопросы Javascript 8 13.02.2011 15:16