Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2014, 08:57   #1
Swatch
Форумчанин
 
Регистрация: 05.07.2009
Сообщений: 209
Вопрос проверка ввода данных в поле

Здравствуйте! Помогите, пожалуйста, решить следующую задачу. Есть поле ввода, в которое данные попадают либо путем считывания штрих-кода, либо вручную, либо выбором из списка. Т.е. есть поле
Код HTML:
<input type="text" id="idKuz" name="idKuz"  size="25" height="30" style="margin-left: 4px;" oninput="javascript:vyvodInfo(document.getElementById('idKuz').value, document.getElementById('nomkt1').value);"></input>
и список значений
PHP код:
<select id="listKuz" size="10" style="display:none;margin-left: 75px; padding-right: 10px; padding-left: 5px;" onchange="var objSel=document.getElementById('listKuz');
            document.getElementById('idKuz').value=objSel.options[objSel.selectedIndex].value;$('#listKuz').hide();vyvodInfo(document.getElementById('idKuz').value, document.getElementById('nomkt1').value); ">
                
                <? foreach ($list as $row): ?>
                   
                    <option label="<?=$row['IdNomIzd']?>" value="<?=$row['IdNomIzd']?>"> </option>
                       
                <? endforeach; ?>    

                
    </select>
При выборе из списка какого-либо элемента, его значение подставляется в поле idKuz.
Как можно с помощью javascript реализовать проверку вводимых в поле данных вручную или считыванием, чтобы введенное значение совпадало с одним из элементов списка значений? И если в списке такого значения нет, выдать пользователю сообщение.
Нашла функцию и попробовала применить к себе, но у меня она не работает:
Код HTML:
var inputs = document.getElementById('idKuz');
for (var i = 0; i < inputs.length; i++) {
  // Когда значение input изменяется…
  inputs[i].addEventListener('input', function() {
    var optionFound = false,
      datalist = document.getElementById('listKuz');
    // Определение, существует ли option с текущим значением input.
    alert(datalist.options.length);
    for (var j = 0; j < datalist.options.length; j++) {
        if (inputs.value == datalist.options[j].value) {
            optionFound = true;
            break;
        }
    }
    // используйте функцию setCustomValidity API проверки ограничений валидации
    // чтобы обеспечить ответ пользователю, если нужное значение в datalist отсутствует
    if (optionFound) {
      this.setCustomValidity('');
    } else {
      this.setCustomValidity('Введенное в поле значение не соответствует ни одному элементу списка');
    }
  });
}
Подскажите, что я делаю не так, или может есть другие варианты проверки?

Последний раз редактировалось Stilet; 06.08.2014 в 17:45.
Swatch вне форума Ответить с цитированием
Старый 11.08.2014, 07:50   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Код:
var inputs = document.getElementById('idKuz');
У вас здесь будет один элемент, а не массив элементов. Поэтому inputs.length всегда равен нулю (с учётом приведения типа) и цикл не выполняется.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка ввода данных MyLifeStyle Общие вопросы C/C++ 0 26.05.2014 15:07
Проверка ввода данных в Delphi XE5 WInnER2192 Общие вопросы Delphi 7 04.05.2014 09:10
Запрет ввода данных в поле DBGrid-а WPROF Компоненты Delphi 6 16.12.2009 18:20
Ограничение ввода данных в поле pgerasimov JavaScript, Ajax 1 11.08.2009 19:01
проверка ввода данных в форму @Simpson JavaScript, Ajax 1 12.11.2007 02:17