Page 1 sur 1

test sur input radio

Posté : 17 janv. 2006, 07:07
par Franquito
Bonjour à tous !

Je cherche a faire une fonction en javascript qui verifira le champs pseudo et si un bouton radio "perso" a bien été selectionné.

Code : Tout sélectionner

function test(champ) { if(document.formSaisie.pseudo.value == "") { alert("Veuillez renseigner votre pseudo"); return false; } else { for(i=0;i<champ.length;i++) { if(champ[i].checked) {return true;} } alert("Veuillez choisir votre personnage"); return false; } }
Et voila comment je l'apelle :

Code : Tout sélectionner

<form name="formSaisie" action="choix_perso.php" method="post" onSubmit="return test(this.perso)"> <input class="champs" type="text" name="pseudo" value="" /> <input type="radio" name="perso" id="perso" class="perso" value="1"> <input type="radio" name="perso" id="perso" class="perso" value="2"> <input type="radio" name="perso" id="perso" class="perso" value="3"> <input class="new" type="submit" name="new" value="Nouvelle Partie" /> </form>
Cela marche trés bien sur Firefox, mais pas sur IE (qui croit qu'aucun perso est selectionné alors que si).

Avez vous une idée ?

merci d'avance ;)

Posté : 17 janv. 2006, 10:15
par Cyrano
Je viens de faire le test et il fonctionne aussi bien sur IE que sur Firefox, j'ai seulement corrigé une erreur : on ne peut avoir qu'une seule fois la même valeur pour un attribut "id" dans une page HTML : j'ai effectué le test avec ceci:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Validation JavaScript</title>
<script type="text/javascript">
function test(champ)
{
    if(document.formSaisie.pseudo.value == "")
    {
        alert("Veuillez renseigner votre pseudo");
        return false;
    }
    else
    {
        var valide = false;
        for(i=0;i<champ.length;i++)
        {
            if(champ[i].checked)
            {
                valide = true;
            }
        }
        if(valide == false)
        {
            alert("Veuillez choisir votre personnage");
        }
        return valide;
    }
}
</script>
</head>
<body>
<form name="formSaisie" action="choix_perso.php" method="post" onSubmit="return test(this.perso)">
<input class="champs" type="text" name="pseudo" value="" />
<input type="radio" name="perso" id="perso1" class="perso" value="1">
<input type="radio" name="perso" id="perso2" class="perso" value="2">
<input type="radio" name="perso" id="perso3" class="perso" value="3">
<input class="new" type="submit" name="new" value="Nouvelle Partie" />
</form>
</body>
</html>

Posté : 17 janv. 2006, 10:32
par Franquito
Salut,

Enfait, selon le nombre de connecté, le nombre d'input type=radio diminue, et mon script ne marche plus des lors qu'il n'en reste plus qu'un.

Sinon est ce que je peut carrément retirer l'attribut id ? je croyais que c'est lui qui etait référencé dans l'apellle de la fonction, mais visiblement c le name non ?