Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Контроль ввода текста в форму (https://javascript.ru/forum/events/4421-kontrol-vvoda-teksta-v-formu.html)

Derack 20.07.2009 17:15

Контроль ввода текста в форму
 
Как проверить ввод текста... я знаю что на события но как?
в принцепе я над этим работал и придумал как блокировать ввод текста при max длинне, но вот когда нажимаешь Ctrl+V эта идея гибнет , вводимый текст больше контроль следовательно никакой... если есть примеры плиз-хэлп...

Riim 20.07.2009 17:27

<input type="text" name="username" maxlength="40" />

Derack 20.07.2009 19:11

нет не это а textarea ... в формате text просто:write: :help:
 
нет не это а textarea ... в формате text просто:write: :help:

`p r o x y 21.07.2009 01:44

попробуй на textarea-ю повесить onkeyup, onclick и onselect - при возникновении которых в функции проверять колличество введенного текста.

пример:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<title>Test</title>
<script type="text/javascript">

var count = 10;

function check_limit(event){
	event = event || window.event;
    var t_obj = event.target || event.srcElement;
	var i_obj = document.getElementById('count_char');
	
	i_obj.innerText = 	'введенно: ' + t_obj.value.length +
						', осталось: ' + (count - t_obj.value.length >= 0 ? count - t_obj.value.length : 0) +
						', превышение: ' + (t_obj.value.length <= count ? 0 : t_obj.value.length - count);
}

function clear_text(){
	document.getElementById('test_textarea').value = '';
	document.getElementById('count_char').innerText = 	'введенно: 0, осталось: ' + count + ', превышение: 0';
}

</script>
</head>
<body>

<div id="count_char">введенно: 0, осталось: 10, превышение: 0</div>
<textarea name='test_textarea' onclick="check_limit()" onkeyup="check_limit()" style="width:400px; height:400px; border:1px solid #000"></textarea>
<br><input type="button" value="Очистить" onclick="clear_text()" />

</div>
</body>
</html>

Derack 21.07.2009 15:25

это хорошо, но ...
 
а как убирать текст когда например что то пишешь или вставляешь: например написал, вставил что то а в форме при этом(если кол-во символов больше) убирает превышающие символы...сам причем...:help:

`p r o x y 22.07.2009 02:32

Цитата:

Сообщение от Derack (Сообщение 24921)
а как убирать текст когда например что то пишешь или вставляешь: например написал, вставил что то а в форме при этом(если кол-во символов больше) убирает превышающие символы...сам причем...:help:

пример:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<title>Test</title>
<script type="text/javascript">

function check_limit(event){
	event = event || window.event;
    var t_obj = event.target || event.srcElement;
	var count = 10;
	if (t_obj.value.length > count) t_obj.value = t_obj.value.substring(0, 10);
}

</script>
</head>
<body>

<textarea name='test_textarea' onclick="check_limit()" onkeyup="check_limit()" style="width:400px; height:400px; border:1px solid #000"></textarea>
<br><input type="button" value="Очистить" onclick="document.getElementById('test_textarea').value = ''" />

</div>
</body>
</html>

Derack 22.07.2009 15:06

Спасибо большое!!!!!!!!!!!!!!
 
Аспирант ты спас мне жизнь:blink: :) как я могу тебя отблагодарить:thanks:

`p r o x y 23.07.2009 00:41

...что то у меня время не хватает, таааааааааак нужна маши время остонавливающая ... )

Derack 23.07.2009 14:25

увы) я еще не волшебник)...
 
увы) я еще не волшебник)...

Semen 09.01.2011 00:58

Делаю "Контроль ввода текста в textarea" на js.
Необходимо, что бы функция контроля чувствовала enter - т.е. перевод текстовой строки.
Как это сделать (по человечески)?

На данный момент:
- подключаю onKeyUp;
- при нажатии кнопки, происходит запуск функции контроля ввода;
- нахожу длину строки с помощью .length - одно нажание это +1;
- но есть такая особенность: при нажатии на enter не +1 а +2 происходит!!! - Можно ли на этой особенности вставлять \n\r или это ненормально будет?

`p r o x y 09.01.2011 01:00

Если не ошибаюсь, вставка \n\r\ или только \n зависит от браузера. Советую проверить для FF и Opera. Вропде там была разница. И уже в соответсвии браузера проверять.

Semen 09.01.2011 01:07

нет, что вставлять это уже дело другое
Вопрос в том, что: подходит ли указанная особенность (т.е. увеличение количества символов строки на 2 и более) для анализа нажатия на enter в textarea или может еще какие кнопки увеличивают строку более чем на 1 при нажатии на них.
Т.е. если длинна строки при однократном нажатии на "неизвестную" кнопку увеличилась более чем на 1 - значит была нажата enter - так можно судить?


Часовой пояс GMT +3, время: 19:15.