Verif checkbox ayons le même nom [Résolu]

Signaler
Messages postés
53
Date d'inscription
dimanche 24 juin 2007
Statut
Membre
Dernière intervention
25 février 2016
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
Bonjour,
Je souhaite vérifier parmi plusieurs checkbox au moins une a été cochée, les checkbox ayont le même nom (name=case[]).
voilà le code mais il ne marche pas :
//----------- javascript -----------
<script language="javascript">
function verif(){
for(i=0;i<document.frm.name[].value;i++){
if (document.frm.name[i].checked){
return true;
}else{
alert ('Erreur');
return false;
}
}
}
</script>

//----------- HTML -----------
<form name="frm" method="post" action="re.php" onSubmit="return verif()">

0Pts


25Pts


50Pts


75Pts


100Pts



</form>

15 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
Bonjour,
1° ton name c'est "name[]", pas "name" !
2° pas .value mais .length

function verif()
{ for( var i=0;i<document.frm["name[]"].length;i++)
{ if (document.frm["name[]"](i].checked)
{ return true; }
}
alert("erreur");
return false;
}

remarque : pourquoi ne pas utiliser radio ?
avec l'un d'eux ayant l'attribut checked ?
ça évite tout test !

Cordialement [mon Site] [M'écrire] Bul
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
"bien sûr" il fallait lire :
if (document.frm["name[]"][i].checked)
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
function verif()
{	var lib=";
if (document.formsuivi.job.value=="")
{	lib+="\r\nErreur fonction";	}
for( var i=0;i<document.formsuivi["name[]"].length;i++){
if (document.formsuivi["name[]"][i].checked!="")
{	break;	}
if (i>=document.formsuivi["name[]"].length)
{	lib+="\r\nErreur check";	}
if (document.formsuivi.local.value==""){
{	lib+="Erreur local";	}
if ( lib.length>0 )
{	alert(lib);
return false;
}
else	{	return true;	}
}

pas testé, mais pas loin...
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
<form name="frm" method="post" action="re.php" onSubmit="return verif()">
0Pts

25Pts

50Pts

75Pts

100Pts



</form>

coté php $_POST['rad'] sera =
au value du radio sélectionné
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
crottes de biques....
<form name="frm" method="post" action="re.php">
bien entendu
Messages postés
53
Date d'inscription
dimanche 24 juin 2007
Statut
Membre
Dernière intervention
25 février 2016
2
Merci Bul3, merci infiniment
ça marche impeccablement
Messages postés
53
Date d'inscription
dimanche 24 juin 2007
Statut
Membre
Dernière intervention
25 février 2016
2
une autre qust, je veut change la place de return true par return false par ce que se code sera integré dans une function qui comporte d'autre et sa créer des pbm pour moi, voilà mon code :
function verif(){
//- - - - - - - Fonction - - - - - - -
var rub = document.formsuivi.job.value;
if (rub==""){
alert ('Sélectionner une fonction');
document.formsuivi.job.focus();
return false;
}

//- - - - - - - Métiers - - - - - - -
for( var i=0;i<document.frm["name[]"].length;i++){
if (document.frm["name[]"][i].checked){
return true;
}
alert("erreur");
return false;
}

//- - - - - - - Localisation - - - - - - -
var city = document.formsuivi.local.value;
if (city==""){
alert ('Sélectionner votre ville');
document.formsuivi.local.focus();
return false;
}
return true;
}
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
oui et ??

mais perso, je signalerais toutes les erreurs
en une seule fois, c'est pénible pour l'utilisateur
sinon de se voir dire :
evoie ===> erreur 1
on corrige, on envoie ==> erreur 2...etc
mieux vaut dire erreur 1 + erreur 2 ....
Messages postés
53
Date d'inscription
dimanche 24 juin 2007
Statut
Membre
Dernière intervention
25 février 2016
2
re, dsl mais j'ai pas bien compri ta dérnier msg
mais regarde se que j'ai fais :
<script language="javascript">
function verif(){
//- - - - - - - Fonction - - - - - - -
var rub = document.formsuivi.job.value;
if (rub==""){
alert("Erreur fonction");
return false;
}

//------------Checkbox-------------
for( var i=0;i<document.formsuivi["name[]"].length;i++){
if (document.formsuivi["name[]"][i].checked!=""){
return true
}else{
alert("Erreur check");
return false;
}
}

//- - - - - - - Localisation - - - - - - -
var city = document.formsuivi.local.value;
if (city==""){
alert("Erreur local");
return false;
}
return true;
}
</script>
//---------------------------------

mais le pbm est que le boucle repete l'erreur check et il ne peut pas sorti.
le 1er code "Fonction" est ne liste déroulante.
la 2éme ses les checkbox, et la dérniere et aussi une liste déroulante.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
if (document.formsuivi.local.value==""){
{ lib+="\r\nErreur local"; }
Messages postés
53
Date d'inscription
dimanche 24 juin 2007
Statut
Membre
Dernière intervention
25 février 2016
2
perfect, ça marche mais il faut faire qlq changement pour les accolades"{}", merci beaucoup, voilà le code pour se qui on le même besoin :
//----------------CODE---------------
function verif(){
var lib="";
if (document.formsuivi.job.value==""){
lib+="\r\n Erreur fonction";
}
for(var i=0;i<document.formsuivi["name[]"].length;i++){
if (document.formsuivi["name[]"][i].checked!=""){
break;
}
}
if (i>=document.formsuivi["name[]"].length){
lib+="\r\n Erreur check";
}
if(document.formsuivi.local.value==""){
lib+="\r\n Erreur local";
}
if (lib.length>0 ){
alert(lib);
return false;
}else{
return true;
}
}
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
nickel si ça baigne....
>>mais il faut faire qlq changement pour les accolades
pas sûr... mais comme pas testé !
Messages postés
53
Date d'inscription
dimanche 24 juin 2007
Statut
Membre
Dernière intervention
25 février 2016
2
merci pour ton aide, je sais que je te dérenge mais je vais demander une dérniere chose, j'ai un champs de text où j'ai met un code pour verifier si le champs est vide et pour qu'il n'accept que les les lettres, mais quand j'entre par exm un nom avec espace il m'affiche l'alert, se que je veut c'est autorisé l'espace plus les lettres seulement, voilà mon code:

function verif(){
var nam = document.frm.nom.value;
if (nam==""){
alert ('Veuillez saisir votre nom');
document.frm.nom.focus();
return false;
}
var nam=document.frm.nom.value;
var T=nam.length;
for(i=0;i<=T-1;i++){
var cara=nam.charAt(i);
        if((cara>=0)&&(cara<=9)){
alert('les lettres seulement');
document.frm.nom.value="";
document.frm.nom.focus();
return false;
}
    }
}
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
regarde du coté des "expressions régulières"
tu y trouveras ton bonheur
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
aller....j'ai sous la main un ch'tiot début
fais pour être adapté
<script type="text/javascript">
    function tst(zone)
    {    return zone.search(/^[A-Za-z]+$/);    }
</script>


il y a d'autres manières de faire....