Bouton radio avec control de saisie

Résolu
nawak.seb Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -  
 kenou -
Bonjour,
Dans un formulaire PHP, j’ai 3 boutons radio (aucune par défaut), avec un bouton « envoyer ».


Mon souhait était d’avoir un contrôle de saisie sur ses radios en JavaScript.

Seulement la radio 1 qui est considéré comme vrai; les autres,sont considéré comme faux.
Voici mon code :
<script type="text/javascript">
function verif()
{
if(document.getElementById('travaux').checked==false)
		{
			alert ("Veuillez sélectionner un type de travaux");
			document.form1.site.focus();
			return false;
		}
		
		else {return true;}
}
</script>


... plus loin ...



<table width="200">
      <tr>
        <td><label>
          <input type="radio" id="travaux" name="travaux" value="1">
          Correctif</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio" id="travaux"  name="travaux" value="2">
          Travaux neufs</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio"  id="travaux" name="travaux" value="3">
          Pr&eacute;ventif</label></td>
      </tr>
      <tr>
        <td><label>
          <input type="radio"  id="travaux" name="travaux" value="4">
          Am&eacute;lioration</label></td>
      </tr>
    </table>


Comment je dois faire pour avoir un control sur toutes les radios et non une seule ?

A voir également:

16 réponses

Utilisateur anonyme
 
Salut,
tu dis avoir 3 boutons radios : moi j'en vois 4. Et ensuite tu dis que ton code marche juste avec la première? C'est bien ça?
Essaie ce code :
function verif()
{
	var valide=false;
	var inpNodes = document.getElementsByName('travaux');
	for(var i=0; i< inpNodes.length;i++){
		if ( inpNodes[i].getAttribute('checked')==true){
				valide = true;
		}
	}
	if (valide == false){
		alert ("Veuillez sélectionner un type de travaux");
		document.form1.site.focus();
	}
	return valide;
}


C'est ta fonction que j'ai un peu modifié.
0
Utilisateur anonyme
 
Salut, tu as 4 boutons radios à ce que je vois, et pas 3.
Tu dis que ta fonction ne marche que pour la première? C'est un peu normal, tes quatre boutons radios ont la même id et tu ne fais qu'un simple if. Dès qu'il tombe sur la première id cherchée, il va pas plus loin.
Essaie ça :
function verif()
{
	var valide=false;
	var inpNodes = document.getElementsByName('travaux');
	for(var i=0; i< inpNodes.length;i++){
		if ( inpNodes[i].getAttribute('checked')==true){
				valide = true;
		}
	}
	if (valide == false){
		alert ("Veuillez sélectionner un type de travaux");
		document.form1.site.focus();
	}
	return valide;
}

C'est ta fonction que j'ai un peu modifié.
0
Utilisateur anonyme
 
test
0
TesteurPHP
 
Problèmes avec le site?
0

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

Posez votre question
nawak.seb Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Help me !!!
0
nawak.seb Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Oui , probleme avec le site

Je vais tester !!
et oui, il y a 4 boutons radio
0
nawak.seb Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Un grand MERCI a Sky34gl3 !!! C’était bien ça !

Ca fonctionne !!
Me voilà débloqué jusqu'à la prochaine fois ! :D

0
nawak.seb Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Me revoilà, avec une question toute bête ;
Quand je clique sur le bouton « ok » de mon alert, celle-ci m’envoi a sur une autre fenêtre, et non de mon formulaire.

Comment je peu faire pour rester sur ce formulaire ?
0
Utilisateur anonyme
 
Salut.
Et en faisant comme ça?
function verif()
{
	var valide=false;
	var inpNodes = document.getElementsByName('travaux');
	for(var i=0; i< inpNodes.length;i++){
		if ( inpNodes[i].getAttribute('checked')==true){
				valide = true;
		}
	}
	if (valide == false){
		alert ("Veuillez sélectionner un type de travaux");
		return false;
	}else{
		return true;
	}
}

<form action="tapage.php" onsubmit="return verif()" method="post">

<input type="submit" value="Go"/><!-- Ne pas mettre de onclick dans ton submit. -->
0
nawak.seb Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Hum hum...j'ai testé mais toujours la meme chose

Voici ceux qu'il se passe :


Notice: Undefined variable: travaux in ... \insert_di.php on line 12
Warning: Cannot modify header information - headers already sent by (output started at ...\insert_di.php:12) in ... \insert_di.php on line 33


C’est normal qu’il ne trouve pas la variable « travaux » vu qu’elle n’est pas coché !, mais comment lui dire dans ce cas là ?
0
Utilisateur anonyme
 
Ce code est fonctionnel je le confirme :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
function verif()
{
var valide=false;
var inpNodes = document.getElementsByName('travaux');
for(var i=0; i< inpNodes.length;i++){
if ( inpNodes[i].getAttribute('checked')==true){
valide = true;
}
}
if (valide == false){
alert ("Veuillez sélectionner un type de travaux");
return false;
}else{
return true;
}
}
</script>
</head>
<body>
<form action="coucou.php" onsubmit="return verif()" method="post">
<table width="200">
<tr>
<td><label>
<input type="radio" id="travaux" name="travaux" value="1">
Correctif</label></td>
</tr>
<tr>
<td><label>
<input type="radio" id="travaux" name="travaux" value="2">
Travaux neufs</label></td>
</tr>
<tr>
<td><label>
<input type="radio" id="travaux" name="travaux" value="3">
Préventif</label></td>
</tr>
<tr>
<td><label>
<input type="radio" id="travaux" name="travaux" value="4">
Amélioration</label></td>
</tr>
</table>
<input type="submit" value="Go"/>
</form>
</body>
</html>
0
kenou
 
bonjour,

il semblerait que ta fonction verif() ne marche pas avec firefox, elle fonctionne pourtant parfaitement avec internet explorer.
est-ce que tu aurais une idée pour la faire marcher également sous firefox?

d'avance merci pour ton aide.
0
nawak.seb Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Impeccable !

Mon erreur était dans mon code JavaScript, je mettais trompé par rapport au focus, les champs n’étaient pas bon
document.form1.site.focus();

Au lieu de
document.form1.travaux[0].focus();

Encore merci !
0
Utilisateur anonyme
 
De rien bonne journée :)
0
nawak.seb Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Et avec 2 boutons submit « Envoyer » et « annuler »
Au moment de l'action « Annuler», comment lui dire de ne pas contrôler la saisie ?

Voici mon code:
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
<head> 
<title>test</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<script type="text/javascript"> 
function verif() 
{ 
var valide=false; 
var inpNodes = document.getElementsByName('travaux'); 
for(var i=0; i< inpNodes.length;i++){ 
if ( inpNodes[i].getAttribute('checked')==true){ 
valide = true; 
} 
} 
if (valide == false){ 
alert ("Veuillez sélectionner un type de travaux"); 
return false; 
}else{return true;}} 


function annul()
{
window.location.href = 'page1.php';
return true;
}

</script> 
</head> 
<body> 
<form action="coucou.php" onsubmit="return verif()" method="post"> 
<table width="200"> 
<tr> 
<td><label> 
<input type="radio" id="travaux" name="travaux" value="1"> 
Correctif</label></td> 
</tr> 
<tr> 
<td><label> 
<input type="radio" id="travaux" name="travaux" value="2"> 
Travaux neufs</label></td> 
</tr> 
<tr> 
<td><label> 
<input type="radio" id="travaux" name="travaux" value="3"> 
Préventif</label></td> 
</tr> 
<tr> 
<td><label> 
<input type="radio" id="travaux" name="travaux" value="4"> 
Amélioration</label></td> 
</tr> 
</table> 
<input type="submit" value="Go"/>
<input type="submit" value="Annuler" onclick="annul()" /> 
</form> 
</body> 
</html>


Et après , j'arrete mes questions !lol
0
Utilisateur anonyme
 
Peut être comme ça? :
<input type="submit" value="Annuler" onclick="javascript:this.form.onsubmit='';annul();" /> 
0
nawak.seb Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Dans ma fonction j'ai remplacé
window.location.href = 'page1.php'; 

par
document.form1.action="page1.php" ;

et j'ai utilisé la commande de Sky34gl3
<input type="submit" value="Annuler" onclick="javascript:this.form.onsubmit='';annul();" />

Le résultat est bon.
Mille mercis à Sky34gl3
0