Page 1 sur 1

Pb validation radio button

Posté : 18 nov. 2005, 13:49
par gandalftheking
Bonjour, voici mon problème. j'ai une liste de boutons radio. Il y a un cas particulier qui doit déclencher une erreur selon plusieurs conditions : la valeur du bouton radio doit être égale à 'contreremb', le pays doit être différent de 'France' ou (le pays est égal à 'France' et le code_postal est égal à '97...' ou '98...'). Voici mon code :

Code : Tout sélectionner

echo '<input type="radio" name="mode_paiment" value="ch"> <font class="texte"><b>Par chèque</b></font><br />'; echo '<input type="radio" name="mode_paiment" value="tel"> <font class="texte">Par téléphone</font><br />'; echo '<input type="radio" name="mode_paiment" value="vir"> <font class="texte">Par virement</font><br />'; echo '<input type="radio" name="mode_paiment" value="contreremb"> Par contre remboursement
et le javascript qui valide :

Code : Tout sélectionner

if(document.fAchat.mode_paiment.value == "contreremb" && ((document.fAchat.pays.value != 'France') || (document.fAchat.pays.value == 'France' && (document.fAchat.code_postal.value.substr(0,2) == '97' || document.fAchat.code_postal.value.substr(0,2) == '98'))){ alert('salut'); }
fAchat étant le nom du formulaire, j'ai déjà vérifié son orthographe.

l'erreur que j'ai c'est 'objet attendu'. Quand j'enlève la deuxième partie de la validation comme ceci :

Code : Tout sélectionner

if(document.fAchat.mode_paiment.value == "contreremb")
il ne rentre pas dans le if alors qu'il devrait.

Voilà. Merci pour vos réponses.

Posté : 19 nov. 2005, 03:41
par Truc
Salut, remplace
document.fAchat.mode_paiment.value
par
document.fAchat.mode_paiment[3].value
il faut séléctionner un bouton précis et non pas le groupe.

Pb validation radio button

Posté : 21 nov. 2005, 19:02
par gandalftheking
Ok pour cette solution, mais comment je peux faire pour sélectionner le radio button cliqué ? je vois bien qu'il faut le mettre dans les crochets, mais par contre je vois pas comment le récupérer.

Merci d'avance.

Posté : 21 nov. 2005, 19:58
par Truc
je vois pas trop ce que tu veut en plus, avec la ligne que je t'ai montré tu récupère la valeur.

Il suffit donc de remplacer dans ton code:
if(document.fAchat.mode_paiment[3].value == "contreremb" && ((document.fAchat.pays.value != 'France') || (document.fAchat.pays.value == 'France' && (document.fAchat.code_postal.value.substr(0,2) == '97' || document.fAchat.code_postal.value.substr(0,2) == '98'))){
 alert('salut');
} 

Posté : 21 nov. 2005, 20:07
par gandalftheking
en fait, je voulais savoir comment récupérer cette valeur [3], mais j'ai trouvé. Pour ceux que çà intéresse, voici la solution :

Code : Tout sélectionner

var modePaiement = ''; for (var i=0; i<document.fAchat.mode_paiment.length;i++) { if (document.fAchat.mode_paiment[i].checked){ modePaiement = document.fAchat.mode_paiment[i].value; } }
il faut donc faire une boucle en javascript pour récupérer la valeur du bouton radio sélectionné. Que du bonheur.

En tout cas, merci.