Je travaille actuellement sur une application de vente interne pour l'entreprise pour laquelle je travaille et j'ai un formulaire qui permet à l'utilisateur de modifier l'adresse de livraison.
Maintenant, je pense que cela aurait l'air beaucoup plus agréable si la zone de texte que j'utilise pour les détails de l'adresse principale occupait simplement la zone du texte qu'elle contient et se redimensionnait automatiquement si le texte était modifié.
En voici une capture d'écran actuellement.
Des idées?
@Chris
Un bon point, mais il y a des raisons pour lesquelles je veux qu'il soit redimensionné. Je veux que la zone occupée soit la zone des informations qu'elle contient. Comme vous pouvez le voir sur la capture d'écran, si j'ai une zone de texte fixe, cela prend un peu d'espace vertical.
Je peux réduire la police, mais j'ai besoin que l'adresse soit grande et lisible. Maintenant, je peux réduire la taille de la zone de texte, mais j'ai des problèmes avec les personnes qui ont une ligne d'adresse qui prend 3 ou 4 (une prend 5) lignes. Le besoin que l'utilisateur utilise une barre de défilement est un non-non majeur.
Je suppose que je devrais être un peu plus précis. Je suis après un redimensionnement vertical, et la largeur n'a pas autant d'importance. Le seul problème qui se produit avec cela, c'est que le numéro ISO (le grand "1") est poussé sous l'adresse lorsque la largeur de la fenêtre est trop petite (comme vous pouvez le voir sur la capture d'écran).
Il ne s'agit pas d'avoir un gadget; il s'agit d'avoir un champ de texte que l'utilisateur peut modifier qui ne prendra pas d'espace inutile, mais affichera tout le texte qu'il contient.
Mais si quelqu'un trouve une autre façon d'aborder le problème, je suis ouvert à cela aussi.
J'ai un peu modifié le code car il agissait un peu bizarrement. Je l'ai changé pour l'activer au clavier, car il ne prendrait pas en compte le caractère qui venait d'être tapé.
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;
};