Obecnie pracuję nad wewnętrzną aplikacją sprzedażową dla firmy, dla której pracuję, i mam formularz, który umożliwia użytkownikowi zmianę adresu dostawy.
Teraz myślę, że wyglądałoby to o wiele ładniej, gdyby obszar tekstu, którego używam do głównych szczegółów adresu, po prostu zajmowałby obszar tekstu w nim i automatycznie zmieniał rozmiar, jeśli tekst został zmieniony.
Oto jego zrzut ekranu.
Jakieś pomysły?
@Chris
Dobra uwaga, ale są powody, dla których chcę zmienić rozmiar. Chcę, aby obszar, jaki zajmuje, był obszarem informacji w nim zawartych. Jak widać na zrzucie ekranu, jeśli mam stały obszar tekstu, zajmuje to sporo miejsca w pionie.
Mogę zmniejszyć czcionkę, ale adres powinien być duży i czytelny. Teraz mogę zmniejszyć rozmiar pola tekstowego, ale wtedy mam problemy z ludźmi, którzy mają wiersz adresu, który zajmuje 3 lub 4 (jeden zajmuje 5) wierszy. Konieczność, aby użytkownik korzystał z paska przewijania, jest głównym nie do przyjęcia.
Myślę, że powinienem być bardziej szczegółowy. Jestem po zmianie rozmiaru w pionie, a szerokość nie ma większego znaczenia. Jedynym problemem, który się z tym wiąże, jest to, że numer ISO (duża „1”) jest wypychany pod adres, gdy szerokość okna jest zbyt mała (jak widać na zrzucie ekranu).
Nie chodzi o to, żeby ćwiczyć; chodzi o posiadanie pola tekstowego, które użytkownik może edytować, które nie będzie zajmować niepotrzebnego miejsca, ale pokaże cały tekst w nim.
Chociaż jeśli ktoś znajdzie inny sposób podejścia do problemu, ja też jestem na to otwarty.
Zmodyfikowałem trochę kod, ponieważ działał trochę dziwnie. Zmieniłem to tak, aby aktywował się przy keyup, ponieważ nie uwzględniałby znaku, który został właśnie wpisany.
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;
};