Исключения Определенных значений
Просто форма должна быть заполнена на английском а родной язык для заполняющих, тоже латинская графика + несколько своих букв!- вот их я и хочу указать в исключениях (точнее помоему надо взять их юникодную трансляцию - если можно так выразится!)
Заранее благодарен!
На onkeyup и onchange события тех полей котоые надо валидировать цепляешь JavaScript обработчик.
В обработчике можно поступать по-разному. Варианта два:
1) Ты должен создать JavaScript массив со всеми нежедательными словами и/или выражениями. В функции-валидаторе пробегаешь по всему массиву и проверяешь входит ли хоть какой-нибудь элемент массива в текущее значение поля. Если да - выводишь сообщение.
2) Список нежелательных слов хранишь в базе данных и при валидации запрашиваешь данные оттуда с помощью AJAX. Все остальное так же как и в варианте 1.
Можно onblur'ом
...
<script ...>
function check(el) {
var block = /[абвгде$#@!]/i;
if (block.test(el.value)) {
// Невалидное поле
} else {
return;
}
}
</script>
Либо
var block = new Array("&#xxxx", ...);
for (var i = 0; i < block.length; i++) {
if (el.value.indexOf(block) != -1) {
// Невалидное поле
return;
}
}
return;
}
Второй вариант можно использовать что бы проверять данные так же на сервере. Хотя первый проще
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 все запускают по-своему
Неа. Если оставлять только onchange, то в IE и Opera остается та же проблема. Тестил на IE6 и Opera 9.10. В FF onchange отрабатывает.
Только если к onchange добавляем onkeyup наша форма не уйдет на сервер без валидации :)
Можно тогда и без onchange. Просто onkeyup поставить и все будет :)