Je travaille actuellement sur une application de vente interne pour la société pour laquelle je travaille, et j'ai un formulaire qui permet à l'utilisateur de modifier l'adresse de livraison.
Maintenant, je pense que ce serait beaucoup plus joli si la zone de texte que j'utilise pour les détails de l'adresse principale prenait juste la zone de texte qu'elle contient, et se redimensionnait automatiquement si le texte était modifié.
Voici une capture d'écran de la situation actuelle.
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 surface qu'il occupe corresponde à la surface des informations qu'il contient. Comme vous pouvez le voir dans la capture d'écran, si j'ai un textarea fixe, il occupe une bonne partie de l'espace vertical.
Je peux réduire la police, mais j'ai besoin que l'adresse soit grande et lisible. Je peux maintenant réduire la taille de la zone de texte, mais j'ai alors des problèmes avec les personnes qui ont une ligne d'adresse qui prend 3 ou 4 (une prend 5) lignes. La nécessité de demander à l'utilisateur d'utiliser une barre de défilement est un gros problème.
Je suppose que je devrais être un peu plus précis. Je cherche un redimensionnement vertical, et la largeur n'est pas aussi importante. Le seul problème qui se pose est que le numéro ISO (le grand "1") est repoussé sous l'adresse lorsque la largeur de la fenêtre est trop faible (comme vous pouvez le voir sur la capture d'écran).
Il ne s'agit pas d'avoir un gadget, mais d'avoir un champ de texte que l'utilisateur peut modifier, qui ne prend pas d'espace inutile, mais qui affiche tout le texte qu'il contient.
Mais si quelqu'un trouve une autre façon d'aborder le problème, je suis également ouvert à cette idée.
J'ai modifié un peu le code car il se comportait un peu bizarrement. Je l'ai changé pour qu'il s'active sur le keyup, car il ne prenait 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;
};
0 votes
Pouvez-vous créer un site de démonstration où nous pourrions voir cela à l'œuvre ?
3 votes
Ce plugin semble bon jacklmoore.com/autosize
0 votes
Existe-t-il une version de JQuery ? Comment accéder aux colonnes et aux lignes d'un TextArea en JQuery ?
0 votes
Presque la même chose, mais avec l'exigence explicite que le texte devienne plus petit lorsqu'il est supprimé : stackoverflow.com/questions/454202/