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 :

desactivation d'un input selon choix radio


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 172
    Par défaut desactivation d'un input selon choix radio
    Bonjour, je cherche a desactivé un input selon le choix d'un bouton radio :



    SI libre occupé est coché, le prix doit etre desactivé.

    Ce tableau est dynamique, il resulte des choix de l'internaute donc je doit faire un javascript qui tienne en compte ceci.

    exemple du retour HTML du tableau :

    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
    <tr>
    	  				<td>2</td>
                         <td>du 20/12/2008 au 27/12/2008</td>
                         <td>
                           <input type="radio" id="rad2" name="etat[1229727600]" value="1" onclick="onYes();" checked>
                           Libre
                         </td>
                         <td>
                           <input type="radio" id="rada2" name="etat[1229727600]" value="0" onclick="onNo();">
                           Occup&eacute;
                         </td>
                         <td>
                           <input name="prix[1229727600]" id="prix2" type="text" size="10" class="test">€
                         </td>
                       </tr>
    Voici mon javascript :

    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
    function updateBox()
    {
      	var inputdist = document.getElementById('tableau').getElementsByTagName('input');
    	for(var i=0; i<inputdist.length; i++){
    	enableBox(document.getElementById("rad"+[i]).checked);
    										 }
    }
     
    function enableBox(yes)
    {
        var inputmist = document.getElementById('tableau').getElementsByTagName('input');
    	for(var i=0; i<inputmist.length; i++){
    	document.getElementById("prix"+[i]).disabled=!yes;
    										 }
    }
     
    function onYes()
    {
    	updateBox();
    }
     
    function onNo()
    {
    	updateBox();
    }
     
    function onLoad()
    {
    	updateBox();
    }
    le probleme viens de la ligne

    enableBox(document.getElementById("rad"+[i]).checked);

    j'ai cette erreur dans le navigateur :

    document.getElementById(...) is null or not a object.

    Voyez vous l'erreur ?

  2. #2
    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 : 54
    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
    enableBox(document.getElementById("rad"+i).checked);
    tout simplement, idem avec les champs prix.
    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

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 172
    Par défaut
    Merci,

    J'ai enlevé les [] mais cela ne change rien, toujours la meme erreur

  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 : 54
    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
    Oui, c'est normal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var inputdist = document.getElementById('tableau').getElementsByTagName('input');
    Tu récupères tous les input, y compris ceux qui n'ont pas comme id 'rad'+i, donc à un moment, le getElementById ne trouve pas l'élément.
    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 confirmé
    Inscrit en
    Octobre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 172
    Par défaut
    je ne vois pas comment faire autrement pour recuperer mes valeurs. Tu aurais une idée.
    Sachant que les id sont sont générés grace a un script php.

  6. #6
    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 : 54
    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
    En rajoutant un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function updateBox()
    {
      	var inputdist = document.getElementById('tableau').getElementsByTagName('input');
    	for(var i=0; i<inputdist.length; i++){
    	if(inputdist[i].id.match('rad'){enableBox(inputdist[i]).checked);}
    										 }
    }
    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

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

Discussions similaires

  1. [AJAX] actualiser div selon choix bouton radio
    Par Raph87 dans le forum AJAX
    Réponses: 17
    Dernier message: 29/04/2011, 05h46
  2. Réponses: 4
    Dernier message: 11/09/2010, 13h15
  3. [AJAX] renseigner des input selon choix dans une liste deroulante
    Par abconcept dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/02/2009, 15h06
  4. contenu de div qui change selon choix dans liste de boutons radios ?
    Par cuisto44000 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/12/2008, 16h10
  5. desactiver des input d'1 form, selon les radios
    Par zimotep dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/08/2006, 17h09

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