Compteur de caractere d'un champ texte en temps réel

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Compteur de caractere d'un champ texte en temps réel

par Snoops » 25 août 2005, 15:21

bon bah je sais pas ce que j'ai encore fait comme c******e j'ai tout recopié collé et là ca passe pourtant je n'avais rien changé ... bizarre enfin bon le plus important c'est que maintenant ca marche merci beaucoup a vous 2 !!!!

par Snoops » 25 août 2005, 15:16

Bizarre, je l'ai testé et sous IE il fonctionne très bien chez moi :-k
Pourtant je t'assure j'ai fait un simple copié collé dans une page test.html !
Mais je l'ai mis dans easy php, le probleme pourrait-il venir de la?
Je retest et je vous tiens au courant.

par Cyrano » 25 août 2005, 15:10

Bizarre, je l'ai testé et sous IE il fonctionne très bien chez moi :-k

par Snoops » 25 août 2005, 15:06

Kdo ;)

<html>
<head>
<title>Formulaire d\'envoi</title>
<script type="text/javascript">

/*
Form field Limiter script- By Dynamic Drive
For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
This credit MUST stay intact for use
*/

var ns6=document.getElementById&&!document.all

function restrictinput(maxlength,e,placeholder){
if (window.event&&event.srcElement.value.length>=maxlength)
return false
else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
var pressedkey=/[a-zA-Z0-9\.\,\/]/ //detect alphanumeric keys
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation()
}
}

function countlimit(maxlength,e,placeholder){
var theform=eval(placeholder)
var lengthleft=maxlength-theform.value.length
var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
if (window.event||e.target&&e.target==eval(placeholder)){
if (lengthleft<0) {
theform.value=theform.value.substring(0,maxlength)
lengthleft=0
}
placeholderobj.innerHTML=lengthleft
}
}


function displaylimit(thename, theid, thelimit){
var theform=theid!=""? document.getElementById(theid) : thename
var limit_text='Nombre de caractères restants : <strong><span id="'+theform.toString()+'">'+thelimit+'</span></strong>'
if (document.all||ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeydown=function(){ countlimit(thelimit,event,theform)}
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keydown', function(event) { countlimit(thelimit,event,theform) }, true); 
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); 
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); 
}
}

</script>
</head>
<body>
<form name="form">
<h4>Message :</h4>
<textarea name="message" id="message" cols="40" rows="6" class="input"></textarea><br />
<script>displaylimit("document.form.message","",160);</script><br />
</form>
</body>
</html>
merci mais il y a une erreur. IE me met l'erreur suivante :
Ligne : 44
Car : 1
Erreur : 'document.form.message' à la valeur NULL ou n'est pas un objet
Code : 0


Désolé mais je ne suis qu'un débutant en js et je ne comprend pas cette erreur :oops:

Je voulais juste copier le code voir comment il fonctionnait puis le réadapter a ma sauce mais peut etre qu'avant de le coller il y a des modif a faire ... ?

Merci d'avance

par @rthur » 25 août 2005, 14:43

Kdo ;)

<html>
<head>
<title>Formulaire d'envoi</title>
<script type="text/javascript">

/*
Form field Limiter script- By Dynamic Drive
For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
This credit MUST stay intact for use
*/

var ns6=document.getElementById&&!document.all

function restrictinput(maxlength,e,placeholder){
if (window.event&&event.srcElement.value.length>=maxlength)
return false
else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
var pressedkey=/[a-zA-Z0-9\.\,\/]/ //detect alphanumeric keys
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation()
}
}

function countlimit(maxlength,e,placeholder){
var theform=eval(placeholder)
var lengthleft=maxlength-theform.value.length
var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
if (window.event||e.target&&e.target==eval(placeholder)){
if (lengthleft<0) {
theform.value=theform.value.substring(0,maxlength)
lengthleft=0
}
placeholderobj.innerHTML=lengthleft
}
}


function displaylimit(thename, theid, thelimit){
var theform=theid!=""? document.getElementById(theid) : thename
var limit_text='Nombre de caractères restants : <strong><span id="'+theform.toString()+'">'+thelimit+'</span></strong>'
if (document.all||ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeydown=function(){ countlimit(thelimit,event,theform)}
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keydown', function(event) { countlimit(thelimit,event,theform) }, true); 
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); 
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); 
}
}

</script>
</head>
<body>
<form name="form">
<h4>Message :</h4>
<textarea name="message" id="message" cols="40" rows="6" class="input"></textarea><br />
<script>displaylimit("document.form.message","",160);</script><br />
</form>
</body>
</html>

par Cyrano » 25 août 2005, 14:34

Tu dois pouvoir utiliser l'évènement onkeypress pour comptabiliser si je fais pas erreur.

Compteur de caractere d'un champ texte en temps réel

par Snoops » 25 août 2005, 14:26

Bonjour je voudrais pouvoir insérer un compteur dans une page php sur un champ "textarea" pour informer l'utilisateur du nombre de saisie effectuées a chaque fois qu'il tape un caractere.
Merci d'avance.