Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Textarea auto resizing


Автор: ratzko 8.10.2007, 09:12
Здравствуйте! У меня есть код который изменяет текстарию в зависимости от содержимого:
Код

function countLines(strtocount, cols) {
    var hard_lines = 1;
    var last = 0;
    while ( true ) {
        last = strtocount.indexOf("\n", last+1);
        hard_lines ++;
        if ( last == -1 ) break;
    }
    var soft_lines = Math.round(strtocount.length / (cols-1));
    var hard = eval("hard_lines  " + unescape("%3e") + "soft_lines;");
    if ( hard ) soft_lines = hard_lines;
    return soft_lines;
}

function cleanForm() { 
        
        a=document.getElementsByTagName('form');
        for (var i = 0; i < a.length; i++){
            var the_form = document.forms[i];
         for ( var x in the_form ) {
             if ( ! the_form[x] ) continue;
                if( typeof the_form[x].rows != "number" ) continue;
                the_form[x].rows = countLines(the_form[x].value,the_form[x].cols) +1;
         }
     }
        setTimeout("cleanForm();", 300);
}


И выполяется на <body onload="cleanForm();

Проблема в том что иногда появляется вертикальная пролрутка которой быть не должно. Как это можно исправить?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)