Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2011, 19h49   #1
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
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 ?
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 21h59   #2
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 872
Points : 1 381
Points : 1 381
possible : oui (même facile)

Code :
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.
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 10h12   #3
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
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...

renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 10h57   #4
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 872
Points : 1 381
Points : 1 381
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.
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 11h25   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
Je vois pas trop l'intérêt puisqu'il est possible, sur quasiment tous les navigateurs, de modifier la taille du textarea
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 12h16   #6
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
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 ?
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 18h17   #7
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 872
Points : 1 381
Points : 1 381
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.)
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 18h37   #8
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
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...
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 19h53   #9
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 872
Points : 1 381
Points : 1 381
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 :
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>
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h36.


 
 
 
 
Partenaires

Hébergement Web