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

ASP.NET Discussion :

Limitation du nombre de caractères dans un textBox multiline


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut Limitation du nombre de caractères dans un textBox multiline
    Bonjour tout le monde.

    J'ai fait pas mal de recherches sur le net mais je ne trouve que des réponses qui ne veulent pas fonctionner chez moi

    Tout est dans le titre, j'ai un textBox multiline et je veux limiter le nombre de caractères. Problème : la propriété MaxLength ne fonctionne pas lorsque la textBox est en mode multiline.

    J'ai testé avec une regEx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ValidationGroup="Main" ControlToValidate="contentTextBox" Text="*" Display="Dynamic" ValidationExpression="[\s\S]{1,30000}" />
    J'ai testé sur l'évènement onkeypress :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onkeypress="return this.value.length<=30000"
    J'ai testé avec du javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script language="javascript" type="text/javascript">
        function textboxMultilineMaxNumber(txt, maxLen) {
    		try {
    			if (txt.value.length > (maxLen - 1))
                    return false;
            } catch (e) {
    		}
    	}   
    </script>
     
    <asp:TextBox ID="contentTextBox" runat="server" Width="850px" Rows="15" Height="400px" onkeypress="return textboxMultilineMaxNumber(this,30000)" TextMode="MultiLine" />
    et aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script language="javascript" type="text/javascript">
    	function textCounter(field, maxlimit) {
    		if (field.value.length > maxlimit) {
    			field.value = field.value.substring(0, maxlimit);
            }
        }
    </script>
     
    <asp:TextBox ID="contentTextBox" runat="server" Width="850px" Rows="15" Height="400px" TextMode="MultiLine" onkeydown="textCounter(this.form.contentTextBox,30000)" onkeyup="textCounter(this.form.contentTextBox,30000)" />
    Mais rien n'y fait...

    Donc si vous aviez une solution à mon souci.


  2. #2
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 92
    Points : 129
    Points
    129
    Par défaut
    Salut,

    as-tu testé maxlength ? C'est une propriété html.

    Sinon, un coup de js et c'est réglé, il te suffit à chaque keypress de checker le nombre caractère total

    A+

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Citation Envoyé par same66 Voir le message
    Salut,

    as-tu testé maxlength ? C'est une propriété html.

    Sinon, un coup de js et c'est réglé, il te suffit à chaque keypress de checker le nombre caractère total

    A+
    Euh... T'as lu ce que j'ai écris ?

    MaxLength ne fonctionne pas sur une textBox multiline parce qu'elle est interprétée comme un textArea. Et le js j'ai essayé mais il ne fonctionne pas, enfin pas celui que j'ai essayé en tout cas...

  4. #4
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 92
    Points : 129
    Points
    129
    Par défaut
    Autant pour moi, je n'avais pas fait attention.

    Tu as testé avec jQuery ?
    En HTML le textarea est justement soumis au maxlength alors ça vient surement lors de la génération du composant en html.
    Essais de voir si tu peux pas faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(document).ready(function()
    {
        $("#ms_num").attr('maxlength','6');
    });
    Sinon, il y a pas mal d'autres solutions sur le web
    http://lmgtfy.com/?q=textarea+maxlength+asp.net

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/04/2011, 09h40
  2. Réponses: 2
    Dernier message: 17/08/2006, 12h36
  3. limite du nombre de caractères dans une requete
    Par pheno82 dans le forum Access
    Réponses: 3
    Dernier message: 01/06/2006, 22h12
  4. Limiter le nombre de caractère dans un textarea
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 25/04/2006, 15h57
  5. Limiter le nombre de caractère dans un textearea?
    Par Death83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/01/2006, 02h24

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