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 :

Sélectionner un radio button et le rendre checked


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut Sélectionner un radio button et le rendre checked
    Bonjour à tous.
    J'ai un formulaire de saisie vierge que je peux remplir manuellement ou automatiquement pour modification.
    Dans ce formulaire il y a des 'radio button':
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                    <input type="radio" id="tempe" name="capt" value="0"/>
                    <label for="tempe">Température</label>
                    <input type="radio" id="humide" name="capt" value="1"/>
                    <label for="humide">Humidité</label>
                    <input type="radio" id="presse" name="capt" value="2"/>
                    <label for="presse">Pression</label>
                    <input type="radio" id="lume" name="capt" value="3"/>
                    <label for="lume">Luminosité</label>
    Lorsque une saisie doit être modifiée, le serveur envoit les données et pour les boutons radio, il envoit '2' par exemple. Il faudrait que le bouton qui a la value 2 soit 'checked'
    Y a-t'il une commande simple avec querySelector pour faire cela?

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 274
    Par défaut
    Bonjour,

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var number = 2
    document.querySelector('#NUMBLC input[value="'+number+'"]').checked
    Un truc du genre ?
    Cdt

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    Citation Envoyé par mormic Voir le message
    Lorsque une saisie doit être modifiée, le serveur envoit les données et pour les boutons radio
    Du côté serveur, vous pouvez utiliser l'attribut checked lors de la soumission de formulaire comme suite

    <input type="radio" id="presse" name="capt" value="2" <?=isset($_POST["capt"])&&(int)$_POST["capt"]==2?' checked="checked"':'';?> />.

    La même chose pour les autres boutons radio, et si vous utilisez la méthode $_GET remplacez $_POST par $_GET

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 197
    Par défaut
    Bonjour,
    c'est effectivement pas très clair, côté client (navigateur) ou serveur ?

    Sinon effectivement côté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const radioBtn = document.querySelector("[name='capt'][value='2']");
    radioBtn.checked = true;

  5. #5
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    merci pour toutes ces réponses.
    c'est effectivement pas très clair, côté client (navigateur) ou serveur ?
    Dans mon énocé, j'avais écrit:
    le serveur envoie les données et pour les boutons radio, il envoit '2' par exemple
    J'en convient que je n'ai pas tout précisé:
    1 le client demande l'envoi d'un formulaire.
    2 le serveur envoie un formulaire
    3 le client demande à modifier un enregistrement éxistant
    4 le serveur envoie les données demandées: par exemple "520B1O00521B1F00" où le 2 représente le radio button à checked.
    5 le client accuse réception.

    La solution de NoSmoking me convient. Merci

  6. #6
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut Reprise de la discussion
    Re bonjour à tous.
    Je reprends cette discussion car je viens de détecter un truc bizarre:
    Toujours avec mon formulaire
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <input type="radio" id="tempe" name="capt" value="0"/>
                    <label for="tempe">Température</label>
                    <input type="radio" id="humide" name="capt" value="1"/>
                    <label for="humide">Humidité</label>
                    <input type="radio" id="presse" name="capt" value="2"/>
                    <label for="presse">Pression</label>
                    <input type="radio" id="lume" name="capt" value="3"/>
                    <label for="lume">Luminosité</label>
    Dans mon Javascript je reçois le message msg du serveur: "530B1O00531B1F00M49P86"
    et j'écris ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    let capteur = msg.charAt(1);
        document.querySelector("[name='capt'][value=" + capteur + "]").checked=true;
    Cela ne fonctionne pas. Pour le faire fonctionner je dois entourer la variable capteur par des simples quotes! comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    let capteur = msg.charAt(1);
        document.querySelector("[name='capt'][value='" + capteur + "']").checked=true;
    Pourquoi alors que pour d'autres cas similaires, ce n'est pas nécessaire?
    Par exemple si j'écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    let rCommandeM=msg.charAt(5);
            document.querySelector("[name='RcommandeM'][value=" + rCommandeM + "]").checked=true;
    Cela fonctionne normalement, sans mettre RcommandeM entre quotes.
    Bizarre non?

  7. #7
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    Citation Envoyé par mormic Voir le message
    Pourquoi alors que pour d'autres cas similaires, ce n'est pas nécessaire?
    Lorsque la valeur commence par une lettre et ne contient aucun espace, ceci pourrait fonctionner sans avoir a utiliser les guillemets/apostrophes, mais le cas contraire non.

    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let v="2abc";
     
    document.querySelector("[name='capt'][value="+v+"]"); //sélecteur invalide, ne fonctionne pas.
     
    v="abc 2";
    document.querySelector("[name='capt'][value="+v+"]"); //sélecteur invalide (présence d'un espace), ne fonctionne pas.
     
    v="abc2";
    document.querySelector("[name='capt'][value="+v+"]"); //Fonctionne.
    Dans votre exemple de la valeur de rCommandeM, la sélection fonctionne parce que c'est sûr que la valeur commence par une lettre et ne contient aucun espace.

    Ceci dit que vous devriez toujours utiliser les guilleumets/apostrophes pour éviter les mauvaises surprises.

  8. #8
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    Ah oui!...Il fallait le savoir. Ou alors, j'ai encore omis de lire quelque part.
    Merci Toufik83, je comprends que vous êtes un "expert confirmé".
    Cordialement

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

Discussions similaires

  1. Radio button checked
    Par jpguiche dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/07/2010, 13h50
  2. Récupérer le radio button checked
    Par Elstak dans le forum C++
    Réponses: 1
    Dernier message: 02/05/2009, 17h15
  3. radio button get value checked
    Par Milona dans le forum JSF
    Réponses: 5
    Dernier message: 18/06/2008, 11h51
  4. Comment rendre exclusif le choix d'un radio button?
    Par DOC doc doc dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 17/06/2007, 16h05
  5. Réponses: 4
    Dernier message: 11/05/2006, 18h04

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