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 :

Comment lire la valeur d'un choix quelque soit le select ou l'input ?


Sujet :

JavaScript

  1. #1
    Membre habitué
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Points : 144
    Points
    144
    Par défaut Comment lire la valeur d'un choix quelque soit le select ou l'input ?
    Salut

    Je pensais avoir trouvé sur le forum la solution à mon problème mais non donc je poste pour de bon :

    J'ai une suite de sélects et de input text qui sont visibles ou invisibles selon le choix fait dans les sélecteurs, et avant de les rendre invisibles je souhaiterais mémoriser les champs qui ont été remplis et les options qui ont été choisies.
    Le problème c'est que je ne sais pas quand je dois utiliser input.value ou option.value.

    Je cherche un truc dans le genre :

    - Si c'est un select : sauver la valeur de cette façon 1
    - Si c'est un input text : sauver la valeur de cette façon 2



    A moins qu'il y ait plus simple ?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    avec un minimum de recherche
    Les champs des formulaires !

  3. #3
    Membre habitué
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Points : 144
    Points
    144
    Par défaut
    Salut

    Il n' y a rien qui convienne à mon problème dans ces tutos là :/

    Je sais lire la valeur des champs d'un formulaire, mais le problème c'est ça :

    Le problème c'est que je ne sais pas quand je dois utiliser input.value ou option.value.
    En fait quand j'écris : "je ne sais pas quand je dois", il s'agit en fait de la fonction de traitement automatique que je veux créer qui ne sait pas, il ne s'agit pas de moi, et mon problème est de le lui faire comprendre.

    Penses-tu que je pourrais faire :

    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
     
    <select id="toto0">
    <option>force</option>
    <option>vitesse</option>
    <option>sagesse</option>
    </select>
     
    <input type="text" id="toto1" />
     
    // Une fonction qui ferait ce principe là (fausse instruction)
    // En fait ici c'est "toto"+i et non "toto0" !
    if (toto0.length>1){
       // C'est un select, traitement 1
    }else
    {
       // C'est un input text, traitement 2
    }
    En fait je me dis que si je pouvais tester la longueur d'un item du formulaire je pourrais résoudre mon problème, j'ai donc posé la question dans un autre post me suis trompé, désolé :/
    Enfin bon le problème reste entier pour le moment :/

  4. #4
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Recherche Google :
    element.tagNameEt j'ai trouvé ça via mon téléphone portable, avec un réseau pourri...
    Il s'agirait de commencer à faire un minimum de recherche avant de poser une question. En particulier quand les 4 premier résultat d'une simple recherche sonne la réponse.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  5. #5
    Membre habitué
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Points : 144
    Points
    144
    Par défaut
    Il s'agirait de commencer à faire un minimum de recherche avant de poser une question. En particulier quand les 4 premier résultat d'une simple recherche sonne la réponse.
    Je ne crois pas que ça réponde à mon problème, tagname c'est pour trouver un objet par son nom, d'ailleurs là je n'utilise pas de noms mais des id, et en plus ce n'est pas ce que je cherche...

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	<div id="toto2" class="toto"> <!-- select 2 -->
    			<label id="labcaract">Quelle caractéristique :</label><br/>
    			<select name="caracts">
    			    <option>vitesse</option>
    			    <option>poids</option>
    			    <option>hauteur</option>
    			    <option>largeur</option>
                  		</select>
    	</div>
    Je reformule mieux mon problème car je crois que je n'étais pas très précis en fait :/

    Voilà, en fait j'ai un document.getElementById qui me trouve toto2 et je voudrais tester le length de caracts !
    Ma fonction ne connaît pas "caracts" donc il faut qu'elle le trouve à partir de toto2 qu'elle connaît


    EDIT :
    Je viens de voir qu'il y a une différence entre document.getElementByTagName() et element.getElementsByTagName
    Comme je suis pas un pro de javascript je les ai confondu, je sais pas comment tu as fait ta recherche mais sache que je cherche avant de poser une question.
    Donc ta critique...

    j'ai trouvé la différence ici :
    https://developer.mozilla.org/fr/doc...mentsByTagName

    Mais je n'y comprend rien comment utiliser cette instruction, c'est facile pour toi qui t'y connais mais pas pour moi alors évite de faire celui qui sait mieux que les autres et que moi je suis un débile mental.

  6. #6
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Non.tagName retourne le nom de la Basile de l'élément que tu manipule.
    Donc,cela vient après le getElementById...

    Merci de te renseigner sur ce qu'on te réponds avant de rejeter en bloc...

    Lien vers la documentation correction

    http://www.w3schools.com/jsref/prop_element_tagname.asp

    Pour ma part, c'est la dernière fois que je viens te donner une réponse.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Citation Envoyé par progdebutant
    Il n' y a rien qui convienne à mon problème dans ces tutos là :/
    on ne peut pas dire que tu fasses preuve de beaucoup de curiosité pour quelqu'un qui veut apprendre, et si des liens sont indiqués il est respectueux de les suivre ne serait ce que par égard envers celui qui s'est donné la peine de le mettre.

    Citation Envoyé par progdebutant
    Le problème c'est que je ne sais pas quand je dois utiliser input.value ou option.value.
    Il faut utiliser ni l'un ni l'autre mais simplement objet.value de façon plus générique et pour récupérer les "objets" une des réponses est contenu dans un lien d'une des faq !

    Citation Envoyé par progdebutant
    Je ne crois pas que ça réponde à mon problème, tagname c'est pour trouver un objet par son nom
    une fois de plus tu nous montres que tu ne cherches pas à vraiment comprendre.

    Citation Envoyé par progdebutant
    Je viens de voir qu'il y a une différence entre document.getElementByTagName() et element.getElementsByTagName
    c'est bien mais on peut faire différemment en utilisant des méthodes plus "récentes".

    Tiens dans ma grande mansuétude je te livre un petit code de test à partir du HTML suivant
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form action="action.php">
      <select>
        <option value="1">UN</option>
        <option value="2">DEUX</option>
        <option value="3">TROIS</option>
      </select>
      <p><input value="texte de l'input"></p>
      <p><input type="submit" value="Envoyer"></p>
    </form>
    et le code javascript suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var oForm  = document.querySelector('FORM'),
        oElements = oForm.querySelectorAll('INPUT, SELECT'),
        i, nb = oElements.length;
    for( i=0; i < nb; i +=1){
      console.log( oElements[i].tagName + ' : ' + oElements[i].value);
    }
    Analyse, teste, comprend et renseigne toi, en gros soit curieux, comment crois tu que l'on ait fait

  8. #8
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    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 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Progdebutant, pour accompagner tes recherches tu peux tirer parti de la console. Quand un objet est envoyé vers la console avec l'instruction console.log, tu peux par la suite manipuler cet objet en faisant clic-droit > « Stocker en tant que variable globale » (ça c'est sous Firefox mais les consoles des autres navigateurs doivent avoir quelque chose de semblable).

    Quand tu examines un élément HTML avec l'onglet « inspecteur » de la console, tu peux utiliser directement cet élément dans la ligne de commande avec la variable spéciale $0. Ça te permet de voir en situation réelle les propriétés de tel ou tel élément. Par exemple, tu peux te demander « est-ce que cet élément a une propriété value, tu fais clic droit dessus > « examiner » ou « inspecter », puis dans la console tu tapes $0.value et tu vois ce que ça donne. Comme le dit NoSmoking, sois curieux, la console est un outil formidable quand on est curieux
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  9. #9
    Membre habitué
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Points : 144
    Points
    144
    Par défaut
    Merci pour votre aide, mais faut me comprendre vous me critiquez parce que j'ai dis mon avis sur votre proposition, mais si j'ai pas compris votre proposition c'est pas la peine de dire que je veux pas chercher, vous vous faites une opinion à partir de ma réaction alors que c'est simplement parce que j'avais pas compris, parce que j'ai pas le niveau, bein pour moi désolé mais j'aurais pas réagi comme vous, je vois quelqu'un qui comprend pas je tente de lui faire comprendre je lui jettes pas une accusation parce qu'il se trompe, je suis peut-être fautif mais pas le seul je pense, car j'ai cherché avant de poser ma question et c'est sûr qu'on trouve mieux ce qu'on cherche quand on s'y connaît mieux, vous me regardez de votre position de savant mais sur d'autres domaines peut-être que je suis plus qualifié que vous qui sait ?
    Ce que je veux résumer, c'est que ce n'est pas parce qu'une personne se trompe qu'on doit directement lui dire qu'elle ne cherche pas assez ou qu'elle ne veut pas apprendre.
    Cela ne veut pas dire que je ne reconnais pas l'importance de votre aide à mon égard et je vous en remercie mais bon j'ai le droit de ne pas vouloir être pris pour un débile aussi donc si je vous dis ma déception faut pas m'en vouloir, je suis en même temps content de votre aide et déçu d'être jugé faussement.
    Retenez que je suis satisfait de votre apport à mon problème et que je vous en veux pas je me défend juste d'une fausse accusation selon moi
    C'est sûr que si j'avais accepté votre première réponse sans me fier à mes propres recherches j'aurais été bien vu, pourtant il s'avère que votre réponse était bonne mais que je l'avais mal comprise, j'avais confondu deux notions qui se ressemblent, et tester juste "element.value" je disais que cela ne correspondait pas parce que je le connaissais et je sais l'utiliser, mais comment je pouvais faire la différence entre deux éléments de formulaires pour pouvoir tester leur valeur ensuite, c'est ça que je ne savais pas expliquer à ma fonction et qui est le but principal de ce topic, merci encore de votre aide et désolé que ça ai tourné comme ça :/

    Merci pour la doc de element tagName malheureusement ça me donne juste le nom de l'élément mais comment à partir de ce nom d'élément "toto"+i faire la différence entre l'élément select et l'élément input ? C'est le but principal de mon problème :/

    Merci beaucoup Watilin !
    J'utilise la console mais pas comme tu l'as dit, je dois mieux l'utiliser c'est sûr, et surtout ce n'est pas moi qui ne sait pas faire la différence entre les deux éléments du formulaire, c'est ma fonction qui ne le sait pas et je cherche depuis le début comment lui faire comprendre ça (à ma fonction).

    Bon finalement je me suis débrouillé en donnant directement le nom du sélect à lire au lieu de le laisser trouver par ma fonction, et j'ai fais de même pour l'input, je met en résolu

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Merci pour la doc de element tagName malheureusement ça me donne juste le nom de l'élément mais comment à partir de ce nom d'élément "toto"+i faire la différence entre l'élément select et l'élément input ? C'est le but principal de mon problème :/
    Il faut que tu synthétises ce que tu découvres.

    Dans l'exemple que je t'ai mis la console fait apparaître quelque chose du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "SELECT : 1"
    "INPUT : texte de l'input"
    "INPUT : Envoyer"
    SELECT et INPUT sont directement le résultat de oElements[i].tagName donc des balises HTML <select> et <input>.

    La propriété tagName d'un élément du DOM retourne donc le type de balise HTML utilisé pour représenter cet élément.

  11. #11
    Membre habitué
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Points : 144
    Points
    144
    Par défaut
    ah je comprend mieux maintenant !
    Après ça devient simple de comparer entre les deux balises pour faire l'action voulue

    Merci !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/04/2014, 13h01
  2. Comment lire des valeurs de paramètres dans un fichier ?
    Par timbrochier dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2010, 12h11
  3. Réponses: 5
    Dernier message: 27/08/2008, 15h29
  4. Comment Lire une valeur à partir d'un fichier XML en C++?
    Par Hamdi Hedhili dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 13/12/2005, 10h09

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