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 :

Mon script pour compter les caract�res marche sous IE7 et non IE8


Sujet :

JavaScript

  1. #1
    Membre �clair� Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    635
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 635
    Par d�faut Mon script pour compter les caract�res marche sous IE7 et non IE8
    bonsoir,

    Je suis d�butant en javascript.
    J'ai pris un code que j'utilise sur mon site. Le code permet de compter les caract�res tap�s dans un box au fure � mesure qu'ils sont tap�s. Le code marche bien (IE7, FF, Safari)
    Depuis que j'ai install� IE8, le m�me code ne marche pas sur IE8.
    SVP Pourriez-vous m'aider � l'adapter? Ou connaitriez-vous un code plus simple compatible � tous les navigateurs et aussi � IE8.

    Voici le code:

    Fichier fonctions.js
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    // COMPTER DES CARACTERES DANS UN CHAMP-----------------------------------------------------------
     
     
     
    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\.\,\/]/ 
    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)
    placeholderobj.innerHTML=lengthleft
    }
    }
     
     
    function displaylimit(thename, theid, thelimit){
    var theform=theid!=""? document.getElementById(theid) : thename
    var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> caractères Maximum.'
    if (document.all||ns6)
    document.write(limit_text)
    if (document.all){
    eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
    eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
    }
    else if (ns6){
    document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); 
    document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); 
    }
    }
    Page HTML o� se trouve le formulaire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <head>
    //appeler le fichier
    <SCRIPT LANGUAGE=Javascript SRC="../js/fonctions.js"> </SCRIPT>
    </head>
     
    <body>
    <form>
    ...
    <textarea name="metadescription" cols="92" rows="4" id="idTexte">Voici la place réservée au texte pas plus de 138 caractères</textarea> 
    <script>displaylimit("","idTexte",138)</script>
    </form>
    </body>
    D'avance je vous remercie

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <script langage="Javascript" type="text/javascript" src="../js/fonctions.js"> </script>
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre �clair� Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    635
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 635
    Par d�faut
    Merci pour votre r�ponse.
    Mais malheureusement ce n'est pas � ce niveau le probl�me. J'ai fait ce que vous avez dit et l'erreur n'a pas chang�. Avec les autres navigateurs, non seulement il y a pas d'erreur mais en plus le code fonctionne. �a fonctionne aussi sur IE7.
    Il y a que sur IE8 que �a ne marche pas. Alors que bcp sont utilisent IE8.

    Voici le code d'erreur:
    D�tails de l�erreur de la page Web
    Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.2)
    Horodateur : Tue, 7 Apr 2009 07:17:14 UTC

    Message*: 'undefined' a la valeur Null ou n'est pas un objet.
    Ligne*: 170
    Caract�re*: 1
    Code*: 0
    URI*: http://www.monsite.com/monadmin/js/fonctions.php
    Voici la ligne 170 dont-il parle :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    placeholderobj.innerHTML=lengthleft
    Merci bcp

  4. #4
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
    Je crois qu'il est largement temps de consid�rer que document.all est obsol�te
    Essaye juste �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var placeholderobj=document.getElementById(placeholder)
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, 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
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  5. #5
    Membre �clair� Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    635
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 635
    Par d�faut
    bonjour,

    Merci pour votre aide.
    J'ai fait ce que vous avez dit. Comme je l'avais mentionn� au d�but, je suis n�ophyte en javascript. J'ai trouv� ce code.
    La correction que je viens de faire ne permet pas encore au code de marcher.

    Peut-�tre dois-je �galement changer quelque � cette ligne ? (ligne 170)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    placeholderobj.innerHTML=lengthleft
    Ou � quelque part d'autre?

    Voici le code d'erreur. Toujours au m�me niveau :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.2)
    Horodateur : Tue, 7 Apr 2009 09:43:18 UTC
     
     
    Message*: 'null' a la valeur Null ou n'est pas un objet.
    Ligne*: 170
    Caractère*: 1
    Code*: 0
    D'avance je te remercie

  6. #6
    Membre r�gulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 9
    Par d�faut IE8
    Hello... moi aussi je viens d'avoir le soucis avec IE8 (encore une --- de microsoft).

    test cel� :
    var valeur = document.forms["id_formulaire"].elements['id_champ'].value;

Discussions similaires

  1. R�ponses: 36
    Dernier message: 03/06/2014, 12h33
  2. [Batch] Aide sur un script pour remplacer les espaces et les caract�res
    Par Samy-DT dans le forum Scripts/Batch
    R�ponses: 9
    Dernier message: 31/07/2013, 17h54
  3. Script pour compter les jours entre deux dates
    Par bomonde dans le forum Shell et commandes GNU
    R�ponses: 12
    Dernier message: 17/10/2012, 18h54
  4. Script pour g�rer les sessions utilisateurs sous Ubuntu
    Par thucydide dans le forum Shell et commandes GNU
    R�ponses: 4
    Dernier message: 08/06/2012, 11h51
  5. R�ponses: 9
    Dernier message: 12/09/2008, 13h49

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