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 :

je débute, mais je me soigne!


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 18
    Points
    18
    Par défaut je débute, mais je me soigne!
    Bonjour,
    Je débute en javascript, et je m'essaie à quelques mini programmes.

    Voici le code d'un qui me pose problème (conversion d'un entier en binaire) :
    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
     
    <html>
    	<head>
    		<script type="text/javascript">
    			function bin () {
    				nombredec = document.getElementById('nb').value;
    				nombrebin = nombredec.toString(2);
    				alert(nombrebin);
    			}
    		</script>
    	</head>
    	<body>
    		<form name="conversion" method="post">
    			<input type="number" name="nb" value="0" id="nb"/>
    			<input type="button" value="Transformer en binaire" onclick="javascript:bin()"/>
    		</form>
    	</body>
    </html>
    Je ne comprends pas pourquoi j'obtiens le nombre décimal que j'ai donné au départ, et non le nombre converti en binaire...

    Le prog en lui-même n'a rien d’intéressant, mais j'aimerai bien comprendre quelle erreur (sans doute grossière je fais!)

    Merci.

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    il faut transformer la valeur en entier avec parseInt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    parseInt(nombredec,10).toString(2)

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    bonjour

    une petite remarque dans le code HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Transformer en binaire" onclick="javascript:bin()"/>
    après un événement onxxxx on a toujours du javascript, il est donc inutile de préciser le type :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Transformer en binaire" onclick="bin()"/>

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par arnogues Voir le message
    il faut transformer la valeur en entier avec parseInt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    parseInt(nombredec,10).toString(2)
    Effectivement, c'est ça.
    Pourtant, je transmets bien un entier avec mon imput de type number, non?

    ps: merci aussi à Auteur pour sa remarque.

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    Citation Envoyé par fabulon46 Voir le message
    Pourtant, je transmets bien un entier avec mon imput de type number, non?.
    non, le contenu de cette chaine représente un nombre, "value" est une chaine de caractères. Il faut donc la convertir en type entier avec parseInt()

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    Ok, merci.
    Pas simple quand même...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    Un nouveau souci...

    Je souhaite cette fois ci que le champ d'un input se remplisse automatiquement, une fois la valeur binaire calculée.
    Voilà mon code:
    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
     
    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript">
    			function bin (zone) {
    				nombredec = zone.value;
    				nombrebin = parseInt(nombredec,10).toString(2);
    				//alert(nombrebin);
    				document.getElementById(nbbin).value = nombrebin;
     
    			}
    		</script>
    	</head>
    	<body>
    		<form name="transfert" method="post">
    			<input type="number" name="nbdec" value="0" id="nbdec"/>
    			<input type="button" value="Transformer en binaire" onclick="bin(nbdec);"/>
    			<br>
    			<input type="text" name="nbbin" id="nbbin"/>
    		</form>
    	</body>
    </html>
    Mon dernier input identifié "nbbin" ne se "remplit" pas, alors dans la fonction javascript, je mets un document.getElementById(nbbin).value = nombrebin;

    Je dois tout mélanger je pense, mais je vois pas quoi...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    J'ai changé ma façon de faire: je fais appel à document.forms et ça marche!

    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
     
    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript">
    			function bin (zone) {
    				nombredec = zone.value;
    				nombrebin = parseInt(nombredec,10).toString(2);
    				document.forms["transfert"].elements["nbbin"].value = nombrebin;
     
    			}
     
    		</script>
    	</head>
    	<body>
    		<form name="transfert" method="post">
    			<input type="number" name="nbdec" value="0" />
    			<input type="button" value="Transformer en binaire  =>" onclick="bin(nbdec);"/>
    			<input type="number" name="nbbin" value="0" />
    		</form>
    	</body>
    </html>
    Mais, si qq pouvait me dire ce qui clochait dans mon 1er script... histoire de comprendre!

  9. #9
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(nbbin).value = nombrebin;
    tu as oublié les guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("nbbin").value = nombrebin;
    sinon sans les guillemets, tu vas chercher dans le contenu de la variable nbbin, variable non déclarée et qui ne contient rien.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Points : 18
    Points
    18
    Par défaut
    Ca me rassure, ce n'est pas une erreur de non sens, mais plutôt une erreur de syntaxe.
    Merci!

  11. #11
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    En parlant d'erreurs, elles ne sont pas faciles à repérer quand on débute, car par défaut elles sont cachées. Il faut ouvrir la console du navigateur (l'article est sur Firebug mais la plupart des conseils donnés valent aussi bien pour les autres consoles des autres navigateurs).

Discussions similaires

  1. [débitant] débutant je suis, mais me soigne
    Par débitant dans le forum Présentations
    Réponses: 4
    Dernier message: 05/06/2014, 17h49
  2. Problème simple langage sqlite mais je débute
    Par - riko - dans le forum Langage SQL
    Réponses: 6
    Dernier message: 09/12/2010, 07h20
  3. je débute à développer en PHP mais..
    Par NANOUSUN dans le forum Langage
    Réponses: 19
    Dernier message: 29/05/2008, 18h18
  4. Réponses: 11
    Dernier message: 17/03/2003, 10h56
  5. Lancer un programme, mais sur une autre machine
    Par GOUGOU1 dans le forum Réseau
    Réponses: 12
    Dernier message: 08/12/2002, 20h36

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