Maintenant je souhaiterai que ,lorsque je clique sur le "Non" les champs cochés dans le "Oui" soit décochés et que le champ field vidé...idem qd je clique sur le "Oui", tout doit être remis à zéro qd les champs apparaissent.
Je me doute qu'il faille créer une fonction pour ça et la rattacher au "on click" des boutons radio "oui" et "non"...j'ai essayé mais cela ne fonctionne pas...notamment ds mon vrai questionnaire j'ai en plus des séries de boutons radio rattachés au "Oui"....
Est ce que qqn peut me donner une piste sur mon exemple ?? Merci !!
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 28 févr. 2007 à 17:11
B onjour...
Excellent...
la fonction peut toutefois être 'optimisée' comme ceci
function raz( id_){
var Ref = document.getElementById(id_);
//-- on cache le DIV
Ref.style.display ='none';
//-- Récup de tous les Obj
var T_Obj = Ref.getElementsByTagName(' * ');// * pour tous les tags
//-- Parcours le tableau d'Objets
for( var i =0; i<T_Obj.length; i++){
//-- On traite suivant le cas
if( T_Obj[i].checked)
T_Obj[i].checked = false;
if( T_Obj[i].type=="text")
T_Obj[i].value = "";
if( T_Obj[i].type=="textarea")
T_Obj[i].value = "";
//-- On peut en rajouter si d'autres controles
}
}
l'appel devient
NON
Nota :
les variables locales peuvent être réutilisée au besoin
louloute8091
Messages postés14Date d'inscriptionsamedi 18 juin 2005StatutMembreDernière intervention15 mars 2007 27 févr. 2007 à 14:13
Bon voilà (c le code pour le questionnaire réel) :
Petites expications suppl. :
-Q07 = > boutons radio "Oui" et "Non"
-Q07a, Q07b, Q07c, Q07d => c une série de 5 boutons radio chacun avec même entête de colonnes d'appréciation (type très satisfaisant, assez satisfaisant etc...)
<!--toute série de questions-->
name"Q07" class"formulaire" value= "non" type ="radio"onClick="cacher('divoui7'
);raz ();"
unchecked>Non
</html>
Bon j'espère que c clair !!! Juste je me demande si j'ai utilisé la boucle et si j'ai bien placé la fonction dans le input....je débute en javascript pour info !! :-)
pour exemple, si vous pouviez reprendre mon premier code factice... Merci !!!
louloute8091
Messages postés14Date d'inscriptionsamedi 18 juin 2005StatutMembreDernière intervention15 mars 2007 27 févr. 2007 à 19:03
Ok ...désolée
Bon on efface tout et on recommence ...Ma problématique de départ c 'est :
"Est ce que, lorsque je clique sur "Non" après avoir renseigné les sous questions du "Oui" (car j'ai changé d'avis par exemple) , les réponses aux sous questions vont - elles être mémorisés lors de l'envoi du formulaire dans une base de données ? "
Si non, tout va bien
Si oui alors j'ai besoin des les effacer / réinitialiser quand je clique sur "Non" et donc de créer ma fonction que j'ai nommée raz().
Voilà mais là , quand je fais le test, que je réponds aux sous-questions du "Oui" , que je change d'avis en cliquant sur "Non" et que je rechange d'avis en cliquant sur "Oui" => je vois que mes réponses ont été conservées...hors je veux que tout soit vidé ou décoché....voilà ma seconde problématique ! Qu'est ce qui ne va pas dans mon code ?
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 27 févr. 2007 à 20:21
B onjour à vous tous
une façon d'y arriver peut être celle ci
//-----------------
function Reset( id_){
//-- Récup l'Objet DIV
var Ref = document.getElementById(id_);
//-- Récup les Objets INPUT de l'Objet DIV
var T_Obj = Ref.getElementsByTagName('input');
//-- Parcours le tableau d'Objet récupérés
for( var i=0; i<T_Obj.length; i++){
//-- Si il est Checked on deChecked
if( T_Obj[i].checked){
T_Obj[i].checked = false;
}
}
}
on peut d'ailleurs deChecked sans test
l'appel se fera donc de la façon suivante
'madiv');Reset('madiv')">NON
;0)
louloute8091
Messages postés14Date d'inscriptionsamedi 18 juin 2005StatutMembreDernière intervention15 mars 2007 28 févr. 2007 à 09:45
Super !!! Ca fonctionne très bien ...par contre j'ai aussi une textarea dans ma div et en m'inspirant de ce que tu as fait, je n'ai pas réussi à faire effacer le contenu de la textarea...
voilà ce que j'ai essayé :
var
T_Obj2= Ref .getElementsByTagName( 'textarea' );
louloute8091
Messages postés14Date d'inscriptionsamedi 18 juin 2005StatutMembreDernière intervention15 mars 2007 28 févr. 2007 à 13:34
Super !! J'ai réussi !! Voilà mon code maintenant :
/fonction remise à zéro données div
function raz( id_){
//-- Récup l'Objet DIV
var Ref = document.getElementById(id_);
var Ref2 = document.getElementById(id_);
//-- Récup les Objets INPUT de l'Objet DIV
var T_Obj = Ref.getElementsByTagName('input');
var T_Obj2 = Ref2.getElementsByTagName('textarea');
//-- Parcours le tableau d'Objet récupérés
for( var i=0; i<T_Obj.length; i++){
//-- Si il est checked on déchecked
if( T_Obj[i].checked){
T_Obj[i].checked = false;
}
}
for( var j=0; j<T_Obj2.length; j++){
//vider le champ textarea
if (T_Obj2[j].value !=""){
T_Obj2[j].value="";
}
}