• Страница 1 из 1
  • 1
Cкрипт для авторастяжки текстового поля textarea
Kosten
Четверг, 16 Октября 2014, 03:43 | Сообщение 1
Оффлайн
Администраторы
Сообщений:44490
Награды: 70
Размер самого скрипта совсем небольшой, выглядит вот так:

Код
<script type="text/javascript">  
var $j = jQuery.noConflict();  
$j.fn.jGrow = function(options) {  
var opts = $j.extend({}, $j.fn.jGrow.defaults, options);  
return this.each(function() {  
$j(this).css({ overflow: "hidden" }).bind("keypress", function() {  
$this = $j(this);  
var o = $j.meta ? $j.extend({}, opts, $this.data()) : opts;  
if(o.rows == 0 && (this.scrollHeight > this.clientHeight)) {  
this.rows += 1;  
} else if((this.rows <= o.rows) && (this.scrollHeight > this.clientHeight)) {  
this.rows += 1;  
} else if(o.rows != 0 && this.rows > o.rows) {  
$this.css({ overflow: "auto" });  
}  
$this.html();  
});  
});  
}  
$j.fn.jGrow.defaults = { rows: 0 };  
$j(document).ready(function() { $j("#comment").jGrow({ rows: 25 }); })  
</script>


В этом скрипте интересна в плане настроек лишь последняя строка, а, вернее, вот эта ее часть:

Код
$j("#comment").jGrow({ rows: 25 });


#comment - это идентификатор поля textarea, к которому хотим прицепить скрипт.
rows: 25 - максимальное количество строк, до которых будет происходить авторастяжка.
Если содержимое поля станет больше этого количества строк, то появляется прокрутка.
Данное можете подстроить под себя как вам удобно.

Но если поставить так:

Код
$j("#comment").jGrow();

то снимается ограничение на максимальную высоту textarea, т.е., в зависимости от количества текста, это поле может растягиваться бесконечно.

По желанию можно заметить следующий момент.
Cрипт не работает, если тегу: Скачать
Страна: (RU)
workman
Четверг, 16 Октября 2014, 22:08 | Сообщение 2
Оффлайн
Проверенные
Сообщений:1716
Награды: 9
Kosten, Подзалил под себя??? Правильно... А то я вчера не правильно закрыл коды и немного сломала дизайн
Страна: (RU)
workman
Четверг, 16 Октября 2014, 22:09 | Сообщение 3
Оффлайн
Проверенные
Сообщений:1716
Награды: 9
Цитата Kosten ()
Cрипт не работает, если тегу:
А дальше???

А дальше так:
Cкрипт не будет работать, если тегу textarea задана высота через CSS, поэтому нужно воспользоваться параметром rows:
Например:
Код
[textarea name="comment" id="comment" cols="70" rows="8"][ /textarea]
Ну и конечно же понимаем, что скобки тут я поставил не те которые на самом деле нужны
Страна: (RU)
  • Страница 1 из 1
  • 1
Поиск: