IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

.length de textbox


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 37
    Par défaut .length de textbox
    Bonjour à tous,

    J'ai un peu soucis avec .length, je m'explique :

    je récupère dans une variable la longueur du texte box

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Taille = document.getElementById(MonComposant).length.value;
    puis je le redimensionne avec size :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(MonComposant).size = Taille;
    Le problème qui se produit est que le redimensionnement ne prend pas en compte la largeur du composant. Si je met des "A", le texte box ne se redimensionne pas assez vite et le texte devient partiellement caché. Et a l'inverse si je met des "i", le texte box devient trop gros.

    Y aurait-il une autre méthode que .length pour faire ceci?

  2. #2
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Salut,

    Nombreux sont ceux qui ont rencontré ce problème.
    En effet, il est impossible de récupérer la taille à l'écran d'une chaine de caractères, il n'y a pas de corrélation entre une font et sa taille.

    petite astuce: Dans ta box, tu as une font prédéfinie. C'est déjà une chance car tes utilisateurs ne peuvent pas en changer donc tu es dans une contrainte contrôlable. Tu peux faire un tableau de taille de chaque caractère, puis une fonction qui te calcule la longueur de la chaine (value du box) et tu l'applique à ta box...

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    pas assez vite ???
    on peut voir un peu plus du contexte ?

    de plus passe plutot pare .style.length
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    En effet, il est impossible de récupérer la taille à l'écran d'une chaine de caractères,
    ????

    Impossible n'est pas Spacefrog

    http://www.developpez.net/forums/d26...ongueur-texte/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 37
    Par défaut
    C'est à dire un peux plus de contexte??

    Enfaite c'est une fonction JavaScript qui modifie, toute la mise en page.

    Pour la largueur du texte box, l'utilisateur a le choix entre : une largueur automatique, une variable ou une valeur tapé manuellement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (TypeTaille == 1){
    	Taille = (document.getElementById(Composant).value.length + 2);
    }
    Le +2 est pour essayer de triché un peu mais sa marche pas .

    Puis je vérifie, si le paramètre taille et composant ne sont pas null et je réaffecte la taille avec .size

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(Composant != ''){	
    	if(Taille != ""){
    		if(Composant.indexOf("@||@") == -1){
    			//---Composant hors tableau répéteur
    			document.getElementById(Composant).size = Taille;
    suis-je assez précis ?

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Citation Envoyé par dentfree Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Taille = document.getElementById(MonComposant).length.value;


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Taille = document.getElementById(MonComposant).value.length;

  7. #7
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Impossible n'est pas Spacefrog
    Yes, jolie astuce. Très bonne idée... Heureusement qu'un div peut s'adapter à son contenu...
    Je sais que j'avais déjà essayer mais quand je chargeais mon div en dynamique (ajax ou html()), il ne s'adaptait plus (juste au chargement de la page).

    Mais, cool si tu y es arrivée. Merci de partager ta news. Au faite, tu ne l'as pas mise dans les sources JavaScript ? Je pense qu'elle a tout à fait sa place...

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    tu y es arrivée.
    Non j'y suis arrivé

    C'est déja dans les contributions ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Heu désolé pour les fautes...

    Cette nuit, j'ai lu les 20 pages du topic sur 'la vérité sur les jeux amateurs' dans le forum des jeux vidéos de devellopez.com... Alors j'avoue ne pas être très frais.

    Ok, pour ta contribution, je vais souvent voir les sources et je ne l'avais jamais remarquée. Pourtant le nombre de fois où des forumeurs en auraient eu besoin...

Discussions similaires

  1. Max length / TextBox
    Par jackasse dans le forum C#
    Réponses: 19
    Dernier message: 25/03/2011, 10h33
  2. [VB.NET] Sauvegarde dans TextBox des logons utilisés
    Par stephane93fr dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/10/2005, 11h00
  3. Réponses: 3
    Dernier message: 25/03/2004, 11h35
  4. ERROR: pg_atoi: zero-length string
    Par steelspirit92 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2003, 22h29
  5. [VB6] [Interface] ScrolBar & TextBox
    Par DarkVader dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/10/2002, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo