Tester radio bouton en javascript / problème

Fermé
dallap - 15 mars 2010 à 01:57
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 16 mars 2010 à 17:43
Bonjour,
j'ai un problème pour tester si mon radio bouton est checked ou pas.

voici le formulaire:

<form action="search.php" method="get" name="Fsearch" onsubmit="return verif_field();">
	<label>Address</label>
	<input type="text" name="address" size="12" value="<?php echo $address; ?>" >

	<label>City</label>
	<input type="text" name="city" size="12" value="<?php echo $city; ?>" >

	<label>Carburant</label>
		<input type="radio" name="carburant" value="bp95" > BP95<br>
		<input type="radio" name="carburant" value="bp85" > BP85<br>
		<input type="radio" name="carburant" value="gazole" > Gazole<br>

	<input type="submit" value="Search">
	</form>


et le javascript:
	 function verif_field() {
		 
	if ( ((document.Fsearch.city.value == '') && (document.Fsearch.address.value == '')) || (!document.Fsearch.carburant.checked) )  {
		alert('Please enter a city and choose a carburant');
		document.Fsearch.city.focus();
			return false;
		 }
		  
	}


je voudrais que la validation du formulaire se fasse si l'un des deux champs "city" ou "address" soit rempli ainsi que l'un des radio boutons "carburant"

j'ai essayé plein de choses mais ça ne marche toujours pas, il m'affiche l'alert même si le bouton est coché ...
le problème viens surement du radio ..
auriez vous une solution?

merci ! :)
A voir également:

8 réponses

Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
15 mars 2010 à 10:02
function verif_field()
{
if(document.Fsearch.city.value == '' && document.Fsearch.address.value == '')
{
if(document.Fsearch.carburant.checked == False)
{
alert('Please enter a city and choose a carburant');
document.Fsearch.city.focus();
return false;
}
}
}

essaye...
salut,

j'ai essayé en même sans cocher le radio bouton le formulaire est validé :(
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 502
15 mars 2010 à 17:22
Tu dois vérifier un par un s'il y a un bouton de coché.
j'ai encore essayé pas mal de choses mais rien ne marche :(

voici la dernière:

 function verif_field()  
		{ 
				 var test = false;
				var f = document.getElementById("Fsearch" );
				 if(f) {
				    var champs = f.getElementsByTagName("radio" );
				    for(var i=1; i<=3; i++) {
						alert("boucle1");
				       if(champs[i].checked) {
						   alert("checked");  
                                 test = true;  
                             }  
				    }
				 }
		}


j'arrive dans la boucle "1" mais pas dans la "checked"

merci

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 502
16 mars 2010 à 16:47
Il faut initialiser i à 0.
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
16 mars 2010 à 17:01
var f = document.getElementById("Fsearch"); est faux !!!
car Fsearch n'est pas un id !!!

met <form id="Fsearch" name="Fsearch"...>
J'ai mis i à 0 et j'avais déjà rajouté un id.
Ca ne marche toujours pas, il check bien les champs address et city mais pas les 3 radio boutons.

mon formulaire:
<form action="search.php" method="get" id="Fsearch" name="Fsearch" onsubmit="return verif_field();">
<p>
<label>Address</label>
<br>
<input type="text" name="address" size="12" value="<?php echo $address; ?>" >
<br>		<br>	
<label>City</label>
<br>
<input type="text" name="city" size="12" value="<?php echo $city; ?>" >
<br><br>
<label>Carburant</label>
<br />
<?php if ($carburant=="bp95"){
	echo "
	<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"bp95\" checked=\"checked\" /> BP95<br />
	<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"bp85\" /> BP85<br />
	<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"gazole\" /> Gazole<br />
		 ";
	}
	else if ($carburant=="bp85"){
		echo "
		<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"bp95\" /> BP95<br />
		<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"bp85\" checked=\"checked\" /> BP85<br />
		<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"gazole\" /> Gazole<br />
		";}
	else if ($carburant=="gazole"){
		echo "
		<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"bp95\" /> BP95<br />
		<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"bp85\" /> BP85<br />
		<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"gazole\" checked=\"checked\" /> Gazole<br />
		";}
	else {
		echo "
		<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"bp95\" /> BP95<br />
		<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"bp85\" /> BP85<br />
		<input type=\"radio\" id=\"carburant\" name=\"carburant\" value=\"gazole\" /> Gazole<br />
		";}
		?>
		
<input type="submit" value="Search" />
</p>
</form>


le javascript:

function verif_field()  
{ 
		if(document.Fsearch.city.value == '' && document.Fsearch.address.value == '')
		{ 
		alert('Please enter a city and choose a carburant'); 
		document.Fsearch.city.focus(); 
		return false; 
		}  
		else {
		var test = false;
		var f = document.getElementById("Fsearch" );
		 if(f) {
		    var champs = f.getElementsByTagName("radio" );
		    for(var i=0; i<3; i++) {
		       if(champs[i].checked) {
				   alert("checked");  
                               test = true;  
                           }  		    }		 }}
		return test;
		}


(pour l'affichage des radio bouttons je test si la valeur $carburant contient quelque chose pour la checker si elle l'était à la page précédente)

le formulaire est envoyé meme si aucun radio boutton n'est coché.
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 502
16 mars 2010 à 17:43
getElementsByTagName("radio" ) : c'est une nouvelle balise ?
Scan les getElementsByTagName('input') et vérifie si l'attribut type == 'radio'