Контроль ввода текста в форму
Как проверить ввод текста... я знаю что на события но как?
в принцепе я над этим работал и придумал как блокировать ввод текста при 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 или это ненормально будет? |
Если не ошибаюсь, вставка \n\r\ или только \n зависит от браузера. Советую проверить для FF и Opera. Вропде там была разница. И уже в соответсвии браузера проверять.
|
нет, что вставлять это уже дело другое
Вопрос в том, что: подходит ли указанная особенность (т.е. увеличение количества символов строки на 2 и более) для анализа нажатия на enter в textarea или может еще какие кнопки увеличивают строку более чем на 1 при нажатии на них. Т.е. если длинна строки при однократном нажатии на "неизвестную" кнопку увеличилась более чем на 1 - значит была нажата enter - так можно судить? |
Часовой пояс GMT +3, время: 19:15. |