Test case à cochée [Résolu]

Signaler
Messages postés
6
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
10 juillet 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
salut,

je voudrais sur un formulaire rendre obligatoire la coche de case à cocher, mais aussi de pouvoir n'en cocher que 2 maximum.

j'ai réalisé un prog mais cela ne fonctionne pas càd il ne teste pas mes cases à cochés

voici mon prog:
<script language="JavaScript">
<!---
function OnChange(){
}
function OnValidate(){
var sphinx = document.sphinx;
if(sphinx.nextpage && sphinx.nextpage.value == '-1')
returntrue;
var i,n,r;
if(sphinx.v1.value.indexOf('|', 0) != -1){
Alert('div1', "Le caractère '|' est illégal.");
returnfalse;
}
}
if(IsVisible('div3')){
i = 0;
while(i < sphinx.v2.length && sphinx.v2[i].checked != '1')
i++;
if(i == sphinx.v2.length){
Alert('div3', "Saisie obligatoire.");
returnfalse;
}
}
if(IsVisible('div3')){
i = 0;
n = 0;
while(i < sphinx.v2.length && n <= 2){
if(sphinx.v2[i].checked == '1')
n++;
i++;
}
if(n > 2){
Alert('div3', "Il y a trop de modalités cochées.");
returnfalse;
}
}
returntrue;
}
//-->
</script>

mon quest:
<form method="post"name="sphinx" action="toto.htm" onSubmit="return OnValidate()">
"checkbox"name="v2" value="1" id="v2" onClick="OnChange()"/>
<label for="v2"> Dreamweaver</label>
</td>
<td width="33%">"checkbox"name="v2" value="3" id="v22" onClick="OnChange()"/>
<label for="v22"> Nvu</label>
</td>
<td width="33%">&nbsp;</td>
</tr>
<tr style="font: 10pt Arial; color: #000000">
<td width="33%">"checkbox"name="v2" value="2" id="v23" onClick="OnChange()"/>
<label for="v23"> Edit plus</label>
</td>
<td width="33%">"checkbox"name="v2" value="4" id="v24" onClick="OnChange()"/>
<label for="v24"> Frontpage</label>
</form>

Merci pour l'aide.

3 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
bonjour,

un machin dans ce style :

    function OnValidate()
    {    var chk=document.sphinx.v2;
        var nb=0;
        for ( var n=0;n<chk.length;n++)
        {    if ( chk[n].checked ) nb++;    }
        return ( nb==1 || nb==2 );
    }

Cordialement[mon Site][M'écrire]Bul
Messages postés
6
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
10 juillet 2009

Bonjour,

Merci pour ton prog. As tu vu une erreur dans le mien ??. Remarque il doit y en avoir une car il ne teste pas mon javascript et s'en va directement sur ma page toto.htm

Merci.

Cordialement.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
9
pas contrôlé, ça me semblait bien compliqué...