dle.in.ua » Хаки » Автоматически увеличиваем textarea by kavadims

Автоматически увеличиваем textarea by kavadims

Автор: kavadims от 23-06-2009, 16:34
Автоматически увеличиваем textarea by kavadims


Понадобилось сделать авто увеличение textarea и наткнулся на дле форум,
НО мне не хотелось для это ерунды подключать библиотеку - jQuery ...
.. все можно сделать на много проще..
1. Открываем - addcomments.tplи смотрим какой class в комменте -
примерно так выглядит -
<textarea name="comments" class="f_textarea" id="comments" >{text}


у меня - f_textarea   ...

2. Находим в css класс и меняем высоту на минимальную высоту  =)
кароче примерно так будет -

.f_textarea {
    color: #757575;        /* ! */
    font-size: 11px;        /* ! */
    font-family: tahoma;    /* ! */
    background-image: url(../images/dlet_field_o.gif);
    background-repeat: repeat-x;
    width: 459px;
    height: 156px;
    border: 1px solid #e0e0e0;


меняем в нем высоту ....

.f_textarea {
    color: #757575;        /* ! */
    font-size: 11px;        /* ! */
    font-family: tahoma;    /* ! */
    background-image: url(../images/dlet_field_o.gif);
    background-repeat: repeat-x;
    width: 459px;
    min-height: 156px;
    border: 1px solid #e0e0e0;



3. Теперь в addcomments.tpl добавляем

<script language="javascript">
function countLines(strtocount, cols) {
    var hard_lines = 0;
    var last = 0;
    while ( true ) {
        last = strtocount.indexOf("\n", last+1);
        hard_lines ++;
        if ( last == -1 ) break;
        }
    var soft_lines = Math.ceil(strtocount.length / (cols-1));
    var hard = eval("hard_lines " + unescape(">") + "soft_lines;");
    if ( hard ) soft_lines = hard_lines;
    return soft_lines;
}
function cleanForm() {
    var the_form = document.getElementById('comments');
    the_form.rows = countLines(the_form.value,the_form.cols) +1;
    setTimeout("cleanForm();", 500);
}
cleanForm();
</script>


Demo для непонятливых - _http://www.vadims.info/test

Вуаля =) Все Работает!
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • не это неправильная идея лучш самому растягивать и заодно такую штуку к смайлам сделать :)
    • Hedin
    • Регистрация: --
    • Репутация: (||)
    • 23 июня 2009 18:38
    • 1
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • К смайлам было бы шикарно прикрутить!

    Согласен на счет jquery прикручивать для такого - это слишком уж раскошно)), более простой Вариант, автор спасибо!
    • dark666666
    • Регистрация: --
    • Репутация: (||)
    • 23 июня 2009 19:06
    • 2
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • по моему особо не нужно
    • Omen
    • Регистрация: --
    • Репутация: (||)
    • 23 июня 2009 20:07
    • 3
    ^
  • Группа: User
  • Icq: 817135
  • Комментариев: 321
  • Публикаций: 0
  • Хмм... для форума может иной раз и понадобиться, но для обычных комментов не катит. Они и так короткие, зачем же делать лишний запас?

    --------------------
    • ALTERNATE
    • Регистрация: 12.12.2008
    • Репутация: (0|0|0)
    • 23 июня 2009 20:27
    • 4
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 122
  • Публикаций: 10
  • да я себе для Новостей вообщето думал ... =)

    так как новости большие - и пользователю удобней будет
    • kavadims
    • Регистрация: 26.07.2008
    • Репутация: (0|0|0)
    • 23 июня 2009 20:32
    • 5
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • а нука по подробней вот это можно и для новостей поставить?
    • Goodman
    • Регистрация: --
    • Репутация: (||)
    • 24 июня 2010 21:19
    • 6
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.