11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

C'est sans doute particulièrement simple, mais j'ai vraiment du mal à me mettre à js...
Voilà la situation :

J'ai un formulaire (dans le cadre d'une enquete) sur lequel je souhaiterais, via js, désactiver certains boutons radio, et d'autre part, ajouter un style personnalisé (une image) lorsqu'ils sont sélectionnés.

Voici les deux boutons radios à désactiver :

                <label for="answer14342X4X251-5">
                <!-- CET INPUT RADIO, je doit lui rajouter la propriété disabled="disabled" -->
                    <input class="radio" name="14342X4X251" value="5" id="answer14342X4X252-5" title="Pas d'évolution" type="radio">
                </label>

                <label for="answer14342X4X252-5">
                <!-- CET INPUT RADIO, je doit lui rajouter la propriété disabled="disabled" -->
                    <input class="radio" name="14342X4X252" value="5" id="answer14342X4X252-5" title="Pas d'évolution" type="radio">
                </label>


Je débute vraiment en js, et j'ai tenté ceci :

<script language="javascript">
function masque(id) {
	StatutRadio = document.getElementById(id).disabled;
	if(StatutRadio != true) {
		document.getElementById(id).disabled = true;
	}
}
// masque(answer14342X4X251-5);
// masque(answer14342X4X252-5);
</script>

dans le head, puis sur body :
<body onload="masque(answer14342X4X251-5);masque(answer14342X4X252-5);";>

Je ne comprend pas, mon formulaire ne s'affiche plus du tout ...

D'autre part, certaines pages de mon formulaire comprennent des tableaux de radios, ce qui rend difficile la visualisation des radios cochées. J'aimerais pouvoir remplacer le radio par défaut, lorsque celui ci est coché, par une image, de façon à le différencier et le voir rapidement.
Comment dois-je m'y prendre ?

Cela fait plusieurs heures que je cherche en vain sur google, je n'arrive pas à trouver les termes de recherche adéquat.

Pourriez vous m'aider ?

Merci d'avance

EDIT:
J'oubliais, cela peut avoir son importance (intéractions avec le js du formulaire en lui même), j'utilise pour réaliser cette enquete le logiciel LimeSurvey.
Modifié par Gryzzly (07 Mar 2009 - 22:16)
Bonsoir,

1/ Je n'ai pas tout compris ce que tu souhaites faire.
Dans quel cas souhaites-tu désactiver tes boutons ?
Car, là, en mettant l'action sur onload, c'est au chargement de la page qu'ils le seront.
(Ce qui est assez paradoxal avec le codage de tes boutons)
In extenso : Pourquoi sont-ils codés là apparents dans le html pour se faire disparaitre par le js à l'init ?

2/ De toutes façons, à part celà, dans l'appel de la fonction masque, je mettrais les ids entre simple quotes :
masque('answer...')
Bsr,
Merci pour cette première réponse.

1/je souhaite les désactiver, tout court. si je les met sur onload, c'est volontaire. s'il apparaissent dans le code html, c'est lié aux contraintes "logicielles". l'application ne permet pas de faire une configuration intégrale du comportement de chaque élément.

En l'occurence, j'ai une séquence de 25 questions avec 30 options (tableau de 25 lignes et 30 colonnes de radios), et je trouve peu logique de séparer 2 ou 3 questions en tableaux distincts pour le simple prétexte que 1 option sur les 30 n'est pas recommandée. Je préfère désactiver "a la volée" au cas par cas.
Et pour anticiper la question : je me fiche royalement de la situation ou le support js serait désactivé dans le navigateur. Ce ne serait pas préjudiciable dans les résultats si la dite option était sélectionnée, mais autant l'éviter.

2/ avec ou sans quotes, le résultat est identique. Le formulaire ne s'affiche pas. Si la seule erreur était les quotes, je crains qu'il n'y ait une quelconque incompatibilité avec le js de l'application d'enquete.
Mais mon niveau n'est pas suffisant pour aller débugguer en profondeur.


Qu'en est-il des styles de radios sur la valeur checked ?