В настоящее время я работаю над приложением внутренних продаж для компании, в которой я работаю, и у меня есть форма, позволяющая пользователю изменить адрес доставки.
Теперь я думаю, что это выглядело бы намного лучше, если бы текстовое поле, которое я использую для деталей основного адреса, просто заняло бы область текста в нем и автоматически изменило бы размер, если текст был изменен.
Вот скриншот этого в настоящее время.
Есть идеи?
@ Крис
Хороший вопрос, но есть причины, по которым я хочу изменить его размер. Я хочу, чтобы область, которую он занимает, была областью информации, содержащейся в нем. Как вы можете видеть на снимке экрана, если у меня фиксированная текстовая область, она занимает довольно много места в вертикальном пространстве.
Я могу уменьшить шрифт, но мне нужно, чтобы адрес был большим и читаемым. Теперь я могу уменьшить размер текстовой области, но у меня возникают проблемы с людьми, у которых адресная строка занимает 3 или 4 (одна занимает 5) строк. Потребность в том, чтобы пользователь использовал полосу прокрутки, является основным нет.
Полагаю, я должен быть более конкретным. Я после вертикального изменения размера, и ширина не имеет большого значения. Единственная проблема, которая возникает при этом, заключается в том, что номер ISO (большой «1») помещается под адресом, когда ширина окна слишком мала (как вы можете видеть на скриншоте).
Дело не в том, чтобы иметь уловку; Речь идет о текстовом поле, которое пользователь может редактировать, которое не будет занимать ненужного места, но покажет весь текст в нем.
Хотя, если кто-то придумает другой способ решения проблемы, я тоже открыт для этого.
Я немного изменил код, потому что он немного странный. Я изменил его, чтобы активировать при keyup, потому что он не будет учитывать только что набранный символ.
resizeIt = function() {
var str = $('iso_address').value;
var cols = $('iso_address').cols;
var linecount = 0;
$A(str.split("\n")).each(function(l) {
linecount += 1 + Math.floor(l.length / cols); // Take into account long lines
})
$('iso_address').rows = linecount;
};