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.