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 :

Limiter la saisie en fonction de la taille d'un textarea


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Limiter la saisie en fonction de la taille d'un textarea
    Bonjour, je cherche une soluce pour limiter la saisie d'un textarea, non pas au nombre de caractères, mais à la taille du textarea.
    Je veux dire par là : quand le user arrive au bout du champ, on n'ajoute pas de scroll, on bloque la saisie.

    Possible ?

  2. #2
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    possible : oui (même facile)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
    function removeOnScroll(){
    	while(this.scrollHeight-this.clientHeight){
    		this.value = this.value.substring(0,this.value.length-1);
    	}
    }
    </script>
    <textarea onscroll="removeOnScroll.call(this);"  style="overflow:hidden;" >hello world from willpower</textarea>
    edit: en fait, ça ne bloque pas la longueur, mais ça supprime tous les caractères un par un tant qu'il y a du scroll.

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour et merci pour ta réponse.

    Cependant, cela n'a pas l'air de fonctionner. Le overflow hidden fait que l'on ne voit plus ce qui est saisi au-delà des limites du textarea, mais si on regarde la BDD, il y a bel et bien des caractères enregistrés...


  4. #4
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Citation Envoyé par renaud26 Voir le message
    Bonjour et merci pour ta réponse.

    Cependant, cela n'a pas l'air de fonctionner. Le overflow hidden fait que l'on ne voit plus ce qui est saisi au-delà des limites du textarea, mais si on regarde la BDD, il y a bel et bien des caractères enregistrés...

    Je n'avais pas testé sous firefox, enleve simplement le style overflow.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Je vois pas trop l'intérêt puisqu'il est possible, sur quasiment tous les navigateurs, de modifier la taille du textarea

  6. #6
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Salut Bovino... là tu marques un point ! C'est donc impossible ? Mon textarea fait un certain nombre de lignes et je veux justement qu'il ne soit pas dépassé...
    Il n'y a donc pas d'équivalent de maxlength pour les textareas ?

  7. #7
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    En CSS:
    fonctionne sur : opéra,safari,chrome,firefox,explorer, ...


    sinon il n'existe pas de maxlength, mais tu peux le limiter le nombre de caractère comme l'explique le début du sujet et faire un substring(maxlength) sur le this.value lors des keypress.

    ou tu peux limiter la taille du textarea et empecher des débordement en supprimant les caractères un à un lors d'un scroll.
    (si les caractères étaients ajoutés par paquets conséquentes(des milliers) systèmatiquement(comme des copier/coller) je t'aurai proposé une suppression dichotomique.)

  8. #8
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonsoir,

    Ouais c'est pas simple...
    Là, le resize:none fonctionne.
    J'ai laissé ta fonction, mais lorsqu'on arrive au bout, le scroll apparait fugitivement et disparait, mais on continue à écrire quand même...

    Je vais devoir passer par une limitation du nombre de caractères...

  9. #9
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Citation Envoyé par renaud26 Voir le message
    J'ai laissé ta fonction, mais lorsqu'on arrive au bout, le scroll apparait fugitivement et disparait, mais on continue à écrire quand même...

    ça écrit et puis ça efface, si le navigateur était bien concu et l'ordinateur assez puissant, ça devrait être tellement instantané (en tout cas pour la frappe qui ajoute les caractères un à un) que ça devrait être inaperçu. et donc revenir à un blocage de frappe.


    pour tester que le champ n'accepte pas plus de caractère (donc lors d'un submit), tu le vois directement dans l'url avec ce simple code.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    function removeOnScroll(){
            while(this.scrollHeight-this.clientHeight){
                    this.value = this.value.substring(0,this.value.length-1);
            }
    }
    </script>
    <form>
    	<textarea name="textarea "onscroll="removeOnScroll.call(this);"  style="overflow:hidden;resize:none;" >hello world from willpower</textarea>
    	<input type="submit" />
    </form>

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2007, 20h42
  2. [JFormattedTextField] limiter la saisie
    Par anitshka dans le forum Composants
    Réponses: 6
    Dernier message: 23/05/2005, 15h23
  3. limiter la saisie dans un edit à des réels!!!
    Par shout dans le forum Windows
    Réponses: 10
    Dernier message: 21/06/2004, 17h20
  4. Saisie de fonction
    Par Balls dans le forum MFC
    Réponses: 2
    Dernier message: 03/03/2004, 21h09
  5. fonction réduisant la taille d'un fichier
    Par Harry_polin dans le forum C
    Réponses: 22
    Dernier message: 27/11/2003, 14h56

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