Ich arbeite derzeit an einer internen Vertriebsanwendung für das Unternehmen, für das ich arbeite, und ich habe ein Formular, mit dem der Benutzer die Lieferadresse ändern kann.
Jetzt denke ich, dass es viel schöner aussehen würde, wenn der Textbereich, den ich für die Hauptadressdetails verwende, nur den Bereich des darin enthaltenen Textes einnimmt und die Größe automatisch ändert, wenn der Text geändert wird.
Hier ist ein Screenshot davon.
Irgendwelche Ideen?
@ Chris
Ein guter Punkt, aber es gibt Gründe, warum ich möchte, dass die Größe geändert wird. Ich möchte, dass der Bereich, den es einnimmt, der Bereich der darin enthaltenen Informationen ist. Wie Sie im Screenshot sehen können, nimmt ein fester Textbereich, wenn ich einen festen Textbereich habe, ziemlich viel vertikalen Raum ein.
Ich kann die Schriftart reduzieren, aber die Adresse muss groß und lesbar sein. Jetzt kann ich den Textbereich verkleinern, aber dann habe ich Probleme mit Leuten, die eine Adresszeile haben, die 3 oder 4 (eine nimmt 5) Zeilen dauert. Die Notwendigkeit, dass der Benutzer eine Bildlaufleiste verwendet, ist ein wichtiges Nein-Nein.
Ich denke, ich sollte etwas genauer sein. Ich bin nach vertikaler Größenänderung und die Breite ist nicht so wichtig. Das einzige Problem, das dabei auftritt, ist, dass die ISO-Nummer (die große "1") unter die Adresse verschoben wird, wenn die Fensterbreite zu klein ist (wie Sie auf dem Screenshot sehen können).
Es geht nicht darum, eine Spielerei zu haben; Es geht darum, ein Textfeld zu haben, das der Benutzer bearbeiten kann und das nicht unnötig Platz beansprucht, sondern den gesamten Text darin anzeigt.
Wenn jemand einen anderen Weg findet, um das Problem anzugehen, bin ich auch dafür offen.
Ich habe den Code ein wenig geändert, weil er etwas seltsam war. Ich habe es geändert, um es beim Keyup zu aktivieren, da es das gerade eingegebene Zeichen nicht berücksichtigt.
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;
};