Formulaire et Firefox [Résolu]

Signaler
Messages postés
25
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2005
-
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
-
Bonjour, j'utilise un formulaire que j'envoie vers une page php.
- Dans ce formulaire, une case rendre "enable" le bouton de validation, seulement si elle est cochée par l'utilisateur. Par défaut la case est décochée, donc le bouton grisé.

Ça marche dans IE pc, Safari et Firefox mac, mais pas dans Firefox pc.

En fait le script active bien mon bouton, la page php qui récupère les données me les affichent correctement mais je ne reçois pas de mail.

Voilà le script dans le head : 

<script type="text/javascript">

<!--

function ChangeStatut(formulaire) {
if(commande2.conditions.checked true) {commande2.Submit.disabled false }
if(commande2.conditions.checked false) {commande2.Submit.disabled true }

}

//-->

</script>

9 réponses

Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Premièrement il serait preférable d'utiliser les balises <form> entre ton bouton et ensuite d'utiliser document.forms[0].Submit.disabled = true ou false.
Messages postés
25
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2005

Désolé, c'était illisible, je change de navigateur et revoilà quelque chose de plus propre :



Bonjour, j'utilise un formulaire que j'envoie vers une
page php.



- Dans ce formulaire, une case rendre "enable" le bouton de
validation, seulement si elle est cochée par l'utilisateur. Par défaut
la case est décochée, donc le bouton grisé.



Ça marche dans IE pc, Safari
et Firefox mac, mais pas dans Firefox pc.

En fait le script active bien
mon bouton, la page php qui récupère les données me les affichent
correctement mais je ne reçois pas de mail.



Voilà le script dans le head
:




<script type="text/javascript">

<!--

function ChangeStatut(formulaire) {

if(commande2.conditions.checked true) {commande2.Submit.disabled false }

if(commande2.conditions.checked false) {commande2.Submit.disabled true }

}

//-->

</script>
Messages postés
25
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2005

Et je termine par :





Le bouton de validation est comme ça :







La console de Firefox m'indique 3 avertissement pour les deux lignes de
ma fonctions en marquant d'utiliser document.getElementById() plutôt
que ID/NAME mais j'ajoue que je m'y connais trop peu pour comprendre.



Merci de votre aide :o)



--

Ivan
Messages postés
25
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2005

Bonjour,



Bien sur que mon formulaire est dans des balises <form> ... </form>.



Pour ce qui est du script de vérification, je l'ai modifié comme tu l'indiques :

- commande2 est le nom du formulaire

- Submit est le nom du bouton (j'ai ensuite préféré le renommer bouton tout simplement)



<script type="text/javascript">

<!--

function ChangeStatut(formulaire) {

if(document.commande2.conditions.checked true) {document.commande2.Submit.disabled false }

if(document.commande2.conditions.checked false) {document.commande2.Submit.disabled true }

}

//-->

</script>



Il manquait peu de choses mais la console javascript et la confirmation donnée par ton message m'ont bien aidé. Merci !
Messages postés
140
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
21 juillet 2005

Bonjour,

Si formulaire de ChangeStatut(formulaire) correspond bien au formulaire document.commande2
on peut écrire aussi :

<script type="text/javascript">
<!--
function ChangeStatut(formulaire) { formulaire.Submit.disabled = ! formulaire.conditions.checked; }
//-->
</script>
Messages postés
25
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2005

Merci Larion



Est-ce que cela revient à dire "tant que" n'est pas coché, alors le bouton reste désactivé ?

En fait une fonction de comparaison "N'est pas" mais écrite à l'envert (le "=!"), un peu non ?
Messages postés
140
Date d'inscription
mercredi 28 avril 2004
Statut
Membre
Dernière intervention
21 juillet 2005

Non, c'est plus simple que cela :

formulaire.Submit.disabled = (! formulaire.conditions.checked);

Le [ ! ] correspond au 'pas' :
( ! true) = false
( ! false) = true

Sinon [ != ] , c'est 'pas' égale, ou différent.
Messages postés
112
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
11 octobre 2006

rien à voir avec le sujet , mais le "forms[0]" permet donc de ne pas utiliser de nom au formulaire.

et ainsi d'etre valide W3C.

Un grand merci

stepiboum
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
stepidou -> Je connais pas la norme W3C à se sujet ,mais le forms correspond au tableau de tout les formulaires dans la page et n'empêche pas l'utilisation du nom du formulaire. Il permet tout simplement d'avoir accès aux formulaires depuis leur index dans la page.