Контроль ввода текста в форму
Как проверить ввод текста... я знаю что на события но как?
в принцепе я над этим работал и придумал как блокировать ввод текста при max длинне, но вот когда нажимаешь Ctrl+V эта идея гибнет , вводимый текст больше контроль следовательно никакой... если есть примеры плиз-хэлп... |
<input type="text" name="username" maxlength="40" />
|
нет не это а textarea ... в формате text просто:write: :help:
нет не это а textarea ... в формате text просто:write: :help:
|
попробуй на 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>
|
это хорошо, но ...
а как убирать текст когда например что то пишешь или вставляешь: например написал, вставил что то а в форме при этом(если кол-во символов больше) убирает превышающие символы...сам причем...: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>
|
Спасибо большое!!!!!!!!!!!!!!
Аспирант ты спас мне жизнь:blink: :) как я могу тебя отблагодарить:thanks:
|
...что то у меня время не хватает, таааааааааак нужна маши время остонавливающая ... )
|
увы) я еще не волшебник)...
увы) я еще не волшебник)...
|
Делаю "Контроль ввода текста в textarea" на js.
Необходимо, что бы функция контроля чувствовала enter - т.е. перевод текстовой строки. Как это сделать (по человечески)? На данный момент: - подключаю onKeyUp; - при нажатии кнопки, происходит запуск функции контроля ввода; - нахожу длину строки с помощью .length - одно нажание это +1; - но есть такая особенность: при нажатии на enter не +1 а +2 происходит!!! - Можно ли на этой особенности вставлять \n\r или это ненормально будет? |
| Часовой пояс GMT +3, время: 13:04. |