Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Исключения Определенных значений

15K
07 февраля 2007 года
anver3
19 / / 31.01.2007
Как можно сделать так чтобы при встрече определенных значений во всех текстовых полях формы быходило предупреждение...
Просто форма должна быть заполнена на английском а родной язык для заполняющих, тоже латинская графика + несколько своих букв!- вот их я и хочу указать в исключениях (точнее помоему надо взять их юникодную трансляцию - если можно так выразится!)
Заранее благодарен!
337
07 февраля 2007 года
shine
719 / / 09.06.2006
А текст как хранится? В базе или как обычные HTML-ки?
15K
08 февраля 2007 года
anver3
19 / / 31.01.2007
Эти значения будет заполнятся в форму...и при вводе определенных символов будет выведена табличка..или если можно даже заблокировать эти символы и все...
337
08 февраля 2007 года
shine
719 / / 09.06.2006
Цитата: anver3
Эти значения будет заполнятся в форму...и при вводе определенных символов будет выведена табличка..или если можно даже заблокировать эти символы и все...



На onkeyup и onchange события тех полей котоые надо валидировать цепляешь JavaScript обработчик.
В обработчике можно поступать по-разному. Варианта два:
1) Ты должен создать JavaScript массив со всеми нежедательными словами и/или выражениями. В функции-валидаторе пробегаешь по всему массиву и проверяешь входит ли хоть какой-нибудь элемент массива в текущее значение поля. Если да - выводишь сообщение.
2) Список нежелательных слов хранишь в базе данных и при валидации запрашиваешь данные оттуда с помощью AJAX. Все остальное так же как и в варианте 1.

253
08 февраля 2007 года
Proger_XP
1.5K / / 07.08.2004
По первому варианту shine:
Можно onblur'ом

Код:
<input ... &#111;&#110;blur="check(this);" />
...
<script ...>
function check(el) {
  var block = /[абвгде$#@!]/i;
  if (block.test(el.value)) {
    // Невалидное поле
  } else {
    return;
  }
}
</script>

Либо
 
Код:
function check(el) {
  var block = new Array("&#xxxx", ...);
  for (var i = 0; i < block.length; i++) {
    if (el.value.indexOf(block) != -1) {
      // Невалидное поле
      return;
    }
  }
  return;
}


Второй вариант можно использовать что бы проверять данные так же на сервере. Хотя первый проще
337
08 февраля 2007 года
shine
719 / / 09.06.2006
onblur несработает если ты будешь что-то писать в текстовом поле и нажмешь Enter. Сабмит произойдет без валидации последнего редактируемого поля.
253
08 февраля 2007 года
Proger_XP
1.5K / / 07.08.2004
Если смотреть по докам W3C и MDC:
Цитата:

The blur event occurs when an element loses focus either via the pointing device or by tabbing navigation
The change event occurs when a control loses the input focus and its value has been modified since gaining focus
MDC:
Also, the change event is fired after the blur event. This behavior differs from IE
IE:
Where applicable, the onblur event fires after the onchange event


Вывод - onchange, ибо blur все запускают по-своему

337
08 февраля 2007 года
shine
719 / / 09.06.2006
Цитата: Proger_XP
Вывод - onchange, ибо blur все запускают по-своему


Неа. Если оставлять только onchange, то в IE и Opera остается та же проблема. Тестил на IE6 и Opera 9.10. В FF onchange отрабатывает.

Только если к onchange добавляем onkeyup наша форма не уйдет на сервер без валидации :)

253
08 февраля 2007 года
Proger_XP
1.5K / / 07.08.2004
Мда. Вот и спрашиваешь ИХ - нафиг нужен W3C?
Можно тогда и без onchange. Просто onkeyup поставить и все будет :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог