Запрет на ввод опр. символов в <input type="text" />

Негодяй

Новичок
Запрет на ввод опр. символов в <input type="text" />

Как запретить вводить в <input type="text" name="textfield" />
к примеру русские буквы и наоборот запретить вводить английские буквы?
 

Santiago

Новичок
Негодяй
Смотри как минимум события onkeypress и onchange для этого поля. По этим событиям проверяй валидность значений.
 

MuXaJIbI41981

Новичок
используй на стороне клиента JS а на сервере рег. выражения для проверки
 

dimagolov

Новичок
onkeypress & onchange будут позволять ввод неправильных символов, которые потом надо будет убивать.

onkeydown позволит перехватывать их ввод и вообще не вводить.
 

Santiago

Новичок
dimagolov
Если делать только через onkeydown, то будет возможность вставить невалидный текст в поле через копи-паст.
 

BRat

o_0
Santiago
делается для удобства пользователя, а не для защиты от него ))
 

Santiago

Новичок
BRat
делается для удобства пользователя, а не для защиты от него ))
Филосовский вопрос ) Но имхо в данной ситуации вполне вероятна ситуация, когда пользователь будет вставлять текст.

Согласен, в первую очередь надо смотреть onkeydown. Ну а дальше по ситуации ))
 

BRat

o_0
Santiago
ну тогда еще добавь onpaste, и не забудь про то, что можно правой кнопкой мыши вставлять )
 

dron4ik

Новичок
Как-то покурили мы чудо-дерево и начеркали вот такое:

Код:
	var rusChars = new Array('А','Б','В','Г','Д','Е','Ё','Ж','З',
'И','Й','К','Л','М','Н','О','П',
'Р','С','Т','У','Ф','Х','Ч','Ц',
'Ш','Щ','Э','Ю','Я','Ы','Ъ','Ь');
	var transChars = new Array('a','b','v','g','d','e','jo','zh','z',
'i','y','k','l','m','n','o','p',
'r','s','t','u','f','h','ch','ts',
'sh','csh','e','u','ya','i','','');
	
	function convert(the_form, conv_froms, conv_to)
	{
        	var nameForm = document.forms[the_form][conv_froms].value;
        	var from = nameForm;

	        var to = "";
	        var len = from.length;
	        var character, isRus;
        	for ( var i = 0; i < len; i++ )
	        {
        	        character = from.substr(i,1);
                	isRus = false;
	                for ( var j = 0; j < rusChars.length; j++ )
	                {
        	                if ( character == rusChars[j] )
	                        {
        	                        isRus = true;
                	                break;
                        	}
	                }
        	        to += (isRus) ? transChars[j] : character;
	        }
        	document.forms[the_form][conv_to].value = to;
	}
ну а вызывать:
onblur="convert('имя формы', 'откуда меняем', 'куда вставляем заменённое');"

надеюсь это ТО, ну тока немного под собственные нужды придётся переработать, значения в массивах, добавить или удалить.! :)

Скрипту года 4 уже - работает исправно!
 

Негодяй

Новичок
dron4ik
Очень полезный скриптик!

Но этот немного не то
У меня есть два поля:
<input type="text" name="rutext" />
<input type="text" name="entext" />

Мне нужно на стороне клиента запретить ввод в первое поле английских букв а во второе русских. На серверной части проверку я знаю как сделать! А на стороне клиента нужен JavaScript в котором я мало что знаю. Может у кого есть какие-нибудь решения?

dron4ik, еще раз спасибо!
 

dron4ik

Новичок
ну этот скрипт берёшь

Что исправить (логика):

и прогоняешь по массиву, в зависимости от необходимости, по русскому или английскому на onblur либо конвертишь английские в русские или наоборот.

+ можно alert давать типа: 'автоматически заменили ваше на наше (на русский)!'

тут разбираться 5,5 минут, даже с нулевым знанием, но с большим желанием.
 

Негодяй

Новичок
Мне не нужно заменять буквы!

-~{}~ 21.04.07 12:26:

Мне нужно, если это возможно, исключит вообще ввод необходимых букв (символов)
 

dron4ik

Новичок
балин, тогда на onkeyup вешай проверку и если символ не валидный - алерт например выдавай.
 
Сверху