Bloquer champ formulaire

fuzz1 Messages postés 2 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 5 février 2004 - 5 févr. 2004 à 13:12
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 6 févr. 2004 à 08:07
bonjour,

Je tiens d'abord à préciser que je n'y connais pas grand chose en prog, j'arrive à utiliser le script suivant pour bloquer les champs d'un formulaire mais impossible d'appliquer le truc sur les boutons radio quand il y en a + de 2 (pour 2 ça fonctionne).
Voilà le script que j'utilise :

<script language="JavaScript" type="text/javascript">
/* variables globales */
var ErreurMessage;
var ErreurMessageTaille;
var ErreurPremierChamp;

function ErreurInitialiser()
{
ErreurMessage = "Certains champs obligatoires n'ont pas été remplis.\nVeuillez choisir :";
ErreurMessageTaille = ErreurMessage.length;
ErreurPremierChamp = null;
}

function ErreurAfficher()
{
if (ErreurMessageTaille != ErreurMessage.length)
{
alert(ErreurMessage);
ErreurPremierChamp.focus();

ErreurInitialiser();
return false;
}
return true;
}

function Erreur(champ, texte)
{
ErreurMessage += '\n - ' + texte;
if (!ErreurPremierChamp) {ErreurPremierChamp = champ;}
}

function ErreurVerification(leForm)
{
if (leForm.liste.selectedIndex == 0) {
Erreur(leForm.liste, 'une option');
}
if (leForm.texte.value == '') {
Erreur(leForm.texte, 'un texte');
}
if (!leForm.check1.checked && !leForm.check2.checked && !leForm.check3.checked) {
Erreur(leForm.check1, 'une checkbox');
}
if (!leForm.btn_radio[0].checked && !leForm.btn_radio[1].checked) {
Erreur(leForm.btn_radio[0], 'un radio');
}
if (leForm.zonetexte.value == '') {
Erreur(leForm.zonetexte, 'un textarea');
}
if (leForm.fichier.value == '') {
Erreur(leForm.fichier, 'un fichier');
}

return ErreurAfficher();
}

ErreurInitialiser();
</script>

Si dans mon formulaire, j'ai par exemple :





comment adapter le blocage en conséquence ?

Merci !

3 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 févr. 2004 à 15:26
Bonjour
je suppose que l'on veut tester
si l'un des boutons radio est coché ?

<script language= 'JavaScript'>
function ctr()
{for (var i=0;i< leForm.btn_radio.length ;i++)
{ if (leForm.btn_radio[i].checked) return true; }
return false; }
</script>

</HEAD>

<form name =leForm>



</form>

Cordialement. Bul.
0
fuzz1 Messages postés 2 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 5 février 2004
5 févr. 2004 à 16:50
Merci, je cherche effectivement à tester si un des boutons radio est coché.

il faut donc que je remplace cette ligne :

if (!leForm.btn_radio[0].checked && !leForm.btn_radio[1].checked) {
Erreur(leForm.btn_radio[0], 'un radio');
}

par

{for (var i=0;i<leForm.btn_radio.length;i++)
{ if (leForm.btn_radio[i].checked) return true; }
return false; }

?

Et comment intégrer le message d'erreur 'un radio' ?

Merci beaucoup pour ta précieuse aide
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 févr. 2004 à 08:07
Bonjour
il faut effectivement remplacer la ligne par

var erreur=true;
for (var i=0;i<leForm.btn_radio.length;i++)
{ if (leForm.btn_radio[i].checked)
{ erreur=false;
i=leForm.btn_radio.length; } }
if (erreur) alert("bouton radio non coché");

par exemple

Cordialement. Bul.
0
Rejoignez-nous