Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Универсальная проверка ввода текстовых полей 
:(
    Опции темы
Sardar
Дата 17.3.2005, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Пишем универсальный валидатор текстовых полей:
Код
<script type="text/javascript">
/**
* Обрабатывет все элементы после загрузки
*/
function initFormCheck() {
  var inps=document.getElementsByTagName("INPUT");
  for(var i=0; i<inps.length; i++) {
    if(inps[i].getAttribute("testreg")==null) continue;
    else inps[i].onkeyup=inputTextCheck; 
    inputTextCheck(inps[i]);
  }
}
/**
* Проверка. Реги и прочую инфу берём из аттрибутов тега.
*/
function inputTextCheck(obj) {
  var o=(obj&&obj.tagName)? obj: this;
  var reg=new RegExp("^"+o.getAttribute("testreg")+"$");
  if(reg.test(o.value)) {
    o.className=o.getAttribute("passclass");
    return true;
  } else {
    o.className=o.getAttribute("failclass");
    return false;
  }
}
</script>

<body onload="initFormCheck();">
<!-- пример: допускаем только цифры 0-9 -->
<input type="text" id="str1" name="text1" testreg="[0-9]+" failclass="fout" passclass="pass">
<!-- допускаем что угодно -->
<input type="text" id="str2" name="text2" testreg=".+" failclass="fout" passclass="pass">
<!-- не обрабатываем поле -->
<input type="text" id="str5" name="text5">
<!-- как видно  для обработки требудется три параметра: рег, имя стиля при правильной проверке и имя стиля при ошибке -->
</body>

Стили можно задать какие угодно, по задаче это:
Код
<style type="text/css">
.pass {
  border: 1px solid black;
}
.fout {
  border: 1px solid red;
}
</style>



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.