j'appelais le script juste avant l'ouverture de la balise form en utilisant la façon que tu m'as indiquée.
Je viens d'essayer de l'appeler juste après le code du bouton valider mais sans succès non plus ...
j'appelais le script juste avant l'ouverture de la balise form en utilisant la façon que tu m'as indiquée.
Je viens d'essayer de l'appeler juste après le code du bouton valider mais sans succès non plus ...
pour le cas ou ça peut en aider certains, voici le code simplifié de ma page (j'ai enlevé le code php et certains champs du formulaire pour rétrécir le code posté) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns=""http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Thales Portal</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script type='text/javascript'> function enable_disable() { var elementsVides = 0; var i; //pour chaque element du formulaire, si l'un est vide on le compte for (i = 0; i <= document.forms["donnees"].elements.length; i++) { if (document.forms["donnees"].element[i].value == '' or document.forms["donnees"].element[i].value == null) { elementsVides++; } } //si il y a des elements vides on desactive le bouton, sinon on l'active document.GetElementById("boutonValider").disabled=(elementsVides > 0)?true:false; } </script> </head> <body> <h2>Donnees a modifier :</h2> <form method="post" action="enregistrer.php?" name="donnees" > <table> <tr><td>Nom du type d application : </td><td><input type="text" name="name" size="10" maxlength="8" /></td></tr> <tr><td>Description du type d application : </td><td><input type="text" name="desc" size="40" maxlength="200" /></td></tr> <tr><td>Position du type d application : </td><td><input type="text" name="position" size=1 /></td></tr> </table> <input type="submit" value="Valider les modifications" id="boutonValider" disabled="disabled" /> <script language="javascript"> enable_disable(); </script> <input type="button" value="Annuler" onClick="document.location.href=index.php" /> </form> </body> </html>
Bonjour,
dès que tu auras corrigéTu pourras :
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.getElementById("boutonValider").disabled=(elementsVides > 0)?true:false;
- Enlever ton passage <script> au milieu de la page (pas le bon endroit)
- Modifier ton tag <body> :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <body onload="enable_disable();">- Ajouter
dans le tag de chacun des input concernés
Code : Sélectionner tout - Visualiser dans une fenêtre à part onchange="enable_disable();"
A+
Pour tout savoir sur l'utilisation du forum
En postant votre message, n'oubliez pas les Règles du Club.
alors j'ai effectué les modifications que tu m'as dis, mais même résultat.
Le code est donc maintenant :
Seulement je n'ai toujours rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns=""http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Thales Portal</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script type='text/javascript'> function enable_disable() { var elementsVides = 0; var i; //pour chaque element du formulaire, si l'un est vide on le compte for (i = 0; i < document.forms["donnees"].elements.length; i++) { if (document.forms["donnees"].element[i].value == '' or document.forms["donnees"].element[i].value == null) { elementsVides++; } } //si il y a des elements vides on desactive le bouton, sinon on l'active document.getElementById("boutonValider").disabled=(elementsVides > 0)?true:false; } </script> </head> <body onload="enable_disable();"> <h2>Donnees a modifier :</h2> <form method="post" action="enregistrer.php" name="donnees" > <table> <tr><td>Nom du type d application : </td><td><input type="text" name="name" size="10" maxlength="8" onchange="enable_disable();" /></td></tr> <tr><td>Description du type d application : </td><td><input type="text" name="desc" size="40" maxlength="200" onchange="enable_disable();" /></td></tr> <tr><td>Position du type d application : </td><td><input type="text" name="position" size=1 onchange="enable_disable();" /></td></tr> </table> <input type="submit" value="Valider les modifications" id="boutonValider" disabled="disabled"/> <input type="button" value="Annuler" onClick="document.location.href=index.php" /> </form> </body> </html>
Petit truc en plus, pour si ca peut aider, lorsque je charge ma page, en bas de la fenetre (la ou ca écrit "ouverture de http:// ..... " lors des chargements de page par exemple) j'ai un petit triangle jaune d'exclamation et lorsque je modifie la valeur d'un champ il met a coté (à la place de "Terminer") "Erreur sur la page"
Cela veut-il dire que c'est le script js qui ne marche pas ? (ou autre chose ?)
Pour tout savoir sur l'utilisation du forum
En postant votre message, n'oubliez pas les Règles du Club.
En fait tu n'a pas relu le code ...
Ton code est bourré de faute :
doit être :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for (i = 0; i < document.forms["donnees"].elements.length; i++)
Je te conseille de faire une petite recherche sur le document.forms et des éléments.
Code : Sélectionner tout - Visualiser dans une fenêtre à part for (i = 0; i < document.forms["donnees"].length; i++)
ex quand tu as un seul form tu doit mettre :
tiens matte ça :http://jennifermadden.com/javascript/loopForms.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.forms[0]
" Can't take your slogans no more, no more sweet talk from the hypocrits " by Robert Nesta Marley
J'ai effectué la modif, et j'ai remarqué en double cliquant sur l'alerte que met le naviguateur que c'est l'appel de la fonction qui crée le problème, par contre je ne vois pas pourquoi ...
l'erreur est la suivante :
et si j'essaye d'entrer une valeur dans les champs c'est plus une erreur que j'ai mais une par champ testé + celle ci (et c'est à chaque fois la meme, il y a juste la ligne qui change)Ligne : 27 (l'appel de la fonction dans la balise <body>
Caractère : 1
Erreur : Objet attendu
Code : 0
Url : l'url
Après tests en mettant tout en commentaire et en dé commentant ligne par ligne j'ai remarqué que le script bloquait sur mon if.
En fait il ne fallais pas utiliser le mot "or" pour faire la double condition mais un double pipe "||"
Voila merci pour votre aide
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager