|
|
|
| Подскажите как реализовать проверку вводимых значений в поле.
В поле необходимо ввести слово для создания домена 3 уровня ...т.е. как я понимаю шаблон примерно /^[_0-9a-zA-Z-]+/
А вот как дальше быть не понятно.
Думал повешать на OnkeyPress
$('#domain').keypress(function(e){
var keychar;
var charcheck = /^[_0-9a-zA-Z-]+/;
keychar = String.fromCharCode(e.which);
if(!charcheck.test(keychar)){
return false;
}
);
|
Но тогда не срабатывают спец символы (удаления, обновления итп).
Следующей мысль была проверять строку на шаблон
$('#domain').keypress(function(e){
var keychar;
var charcheck = /^[_0-9a-zA-Z-]+/;
keychar = String.fromCharCode(e.which);
var str = $('#domain').val()+keychar;
result=charcheck.test(str);
if(!result){
return false;
}
});
|
Но тут всегда true даже когда кириллицу нажимаю либо спец символы.
Подскажите что делаю не так? | |
|
|
|
|
|
|
|
для: Piom
(07.05.2009 в 11:12)
| |
$('#domain').keypress(function(e){
var keychar;
var spec_symbs = new Array(9, 13, 38, 40);
var charcheck = /^[_0-9a-zA-Z-]$/;
keychar = String.fromCharCode(e.which);
if(!charcheck.test(keychar) ) {
if($.inArray(e.which, spec_symbs) < 0) return false;
}
}
);
|
если функция посаженная на событие возвращает false, то дефолтное событие, которое идет следом за вашим обработчиком не сработает. поэтому важно фильтровать клавиши. дополните массив spec_symbs кодами клавиш, которые должны срабатывать. я тут накидал сколько вспомнил
9 - tab
13 - enter
38 - up
40 - down | |
|
|
|