Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ограничить число строк в textarea 5-ю. Как?
 
 автор: Port_Artur1   (28.11.2007 в 18:47)   письмо автору
 
 

Имется такая информация
а вот как воплотить я совсем не знаю помогите пожалуйса!

Знаю только что функция должна вызываться на действие onklick


ДЛИНА СТРОК НЕ БОЛЕЕ 50 СИМВОЛОВ

Как получить количество строк в textarea элементе?
IE4+



function textareaCurLineNum(obj)
{
  var rowHeight = obj.clientHeight/obj.rows;
  var curHeight = obj.createTextRange().boundingHeight;

  return parseInt(curHeight/rowHeight)+(obj.value!=''?1:0);
}Обратите внимание на то, как ведется подсчет строк: 


если текстовое поле пусто, то функция вернет 0 (хотя курсор и мигает в первой строке), ибо строк реально нет;
если вы нажали "Enter" и курсор переместился в новую строку, то это не значит что, появилась новая строка. Вот когда вы введете в этой строке что-то, то строка действительно появится, и будет учитываться при подсчете.
Пояснения: clientHeight возвращает высоту элемента textarea без учета всех отступов, границ, полос прокрутки;

boundingHeight возвращает размер в пикселах воображаемого пространства, занятого объектом TextRange (в нашем случае данный объект содержит весь текст и соответственно возвращает высоту занимаемую текстом в textarea элементе).

   
 
 автор: Саня   (29.11.2007 в 19:35)   письмо автору
 
   для: Port_Artur1   (28.11.2007 в 18:47)
 

<script type="text/javascript">
function countRows(id) {
  var area = document.getElementById(id);
  var c = 1;
  var len = 0;
  for ( i = 0; i < area.value.length; i++ ) {
    if ( area.value[i] == '\n' ) c++;
    if ( c == 5 ) len = i;
  }
  if ( len > 0 ) area.value = area.value.slice(0, len + 1);
}
</script>

<textarea id="tarea"
  onchange="countRows(this.id);" 
  onkeydown="countRows(this.id);" 
  rows="10" cols="25"></textarea>

   
 
 автор: Port_Artur1   (29.11.2007 в 19:41)   письмо автору
 
   для: Саня   (29.11.2007 в 19:35)
 

Да не - не работает вводиться бесконечное количество строк без каких либо ограничений!!!

   
 
 автор: Port_Artur1   (29.11.2007 в 20:02)   письмо автору
 
   для: Port_Artur1   (29.11.2007 в 19:41)
 

!!!

   
 
 автор: bronenos   (29.11.2007 в 23:11)   письмо автору
 
   для: Port_Artur1   (29.11.2007 в 19:41)
 

1. Нахрена передавать в функцию идентификатор, а не ссылку?
2. Ессно, ведь при переводе строки осью не вставляется перевод строки... тут надо наверное считать по ширине букв и поля

   
 
 автор: Port_Artur1   (30.11.2007 в 00:04)   письмо автору
 
   для: bronenos   (29.11.2007 в 23:11)
 

Bronenos поправьте пожалуйста

   
 
 автор: Саня   (30.11.2007 в 00:26)   письмо автору
 
   для: bronenos   (29.11.2007 в 23:11)
 

Знаете как лучше? Предложите свой вариант! Нечего тут демагогию разводить...

   
 
 автор: bronenos   (30.11.2007 в 00:51)   письмо автору
 
   для: Саня   (30.11.2007 в 00:26)
 

за грубость извиняюсь
но зачем реально передавать ид?
проще ссылку сразу

а насчет решения задачи пока ниче не скажу
не занимался я такими задачами пока что

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования