Вход

Просмотр полной версии : Контроль ввода текста в форму


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:

`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
а как убирать текст когда например что то пишешь или вставляешь: например написал, вставил что то а в форме при этом(если кол-во символов больше) убирает превышающие символы...сам причем...: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 - так можно судить?