Как уменьшить TextArea - PullRequest
       7

Как уменьшить TextArea

0 голосов
/ 23 августа 2010

Я использую библиотеку YUI 3.1 от Yahoo, а также TextExpander, чтобы позволить TextArea расти при вводе пользователем.

Код ниже инициализирует TextArea:

YUI({gallery: 'gallery-2010.03.23-17-54'
    }).use("node", 'gallery-text-expander', function(Y) {
    Y.one('#myTextArea').plug(Y.TextExpander);
});

Этоработают отлично, но теперь у меня есть вопрос в этом сценарии:

1) Тип пользователя, TextArea растет на много строк, а затем сообщение отправляется на сервер.

2) После публикации я очищаю TextArea с помощью $('myTextArea').value='', но он не сжимается, как ожидалось, и все еще содержит много строк, когда в реальном времени должен вернуться к исходному размеру.

Я заметил внутри кода TextExpander (http://yuilibrary.com/gallery/buildtag/text-expander/gallery-2010.03.23-17-54) существует метод с именем "shrink_area", но как я могу вызвать этот метод $('myTextArea').shrink_area()? (я знаю, что это неправильная строка кода, но мне нужночтобы получить что-то вроде этого) или как лучше?

Заранее спасибо за предложения и советы.

Ответы [ 2 ]

0 голосов
/ 23 августа 2010

О, хорошо, я решил проблему сам.

Так что вместо этого попытаться вызвать внутренний метод подключенного класса (, было приятно знать, как это сделать, возможно, используя собственное пространство имен ) я написал небольшую функцию, которая делает свое дело.

1) сначала я установил свойство CSS min-height в классе

2) после очистки TextArea, я установил height в качестве минимальной высоты

приведенный ниже код показывает функцию, которая выполняет трюк

function shrinkTextArea(element) {
    // clear
    $(element).value ='';

    // shrink
    $(element).style.height = $(element).style.minHeight;
}
0 голосов
/ 23 августа 2010

Textarea имеет rows и cols свойства для изменения размера.Попробуйте установить их.

...