gesualda Posté 25 Juin 2005 Posté 25 Juin 2005 Bonjour, C'est une petite question, mais je sais pas comment faire. J'aimerai griser dans un formulaire la ligne <input submit> tant que le checkbox qui se trouve juste avant n'est pas coché. Si quelqu'un pourrait m'orienter, ca me rendrait service. @++
gesualda Posté 25 Juin 2005 Auteur Posté 25 Juin 2005 (modifié) Bon ben j'ai trouvé, alors si ca peut aider quelqu'un voila: <head> <script language="javascript" type="text/javascript">function ChangeStatut(formulaire) {if(formulaire.regagree.checked == true) {formulaire.validation.disabled = false }if(formulaire.regagree.checked == false) {formulaire.validation.disabled = true }}</script> </head><body><form action="" methed="post"><input type="checkbox" name="charte_photo" value="valeur" onClick="ChangeStatut(this.form)" /> Valider la charte<input type="submit" name="validation" value="S'enregistrer" disabled /></form></body> J'oubliai, il n'est pas de moi, mais tant qu'a faire @ bientôt et bon week à tous Modifié 25 Juin 2005 par gesualda
Xavier Posté 25 Juin 2005 Posté 25 Juin 2005 Petit problème : sans javascript le bouton de validation ne sera jamais activé Il faut donc s'arranger pour que le bouton soit désactivé par javascript au chargement En plus la syntaxe n'est pas du tout correcte, et l'activation ne se fera que dans IE qui est le seul à accepter de telles erreurs de syntaxe Bref, permets-moi de te dire que ça ne va pas du tout Bref, quelque chose comme ceci serait plus correct : <head><script type="text/javascript">function ChangeStatut() {var eltCheckbox = document.getElementById("charte_photo");var eltSubmit = document.getElementById("validation");if(eltCheckbox.checked == true) {eltSubmit.disabled = false }if(eltCheckbox.checked == false) {eltSubmit.disabled = true }}</script></head><body onload="ChangeStatut();"><form action="" methed="post"><label><input type="checkbox" name="charte_photo" id="charte_photo" value="valeur" onClick="ChangeStatut()" /> Valider la charte</label><input type="submit" name="validation" value="S'enregistrer" id="validation" /></form></body> PS : je ne suis pas convaincu du onload sur le body mais je n'ai pas réussi à faire fonctionner un window.onload = ChangeStatut()
Xavier Posté 26 Juin 2005 Posté 26 Juin 2005 Je savais qu'il y avait un "truc" pour les formulaires ! <script type="text/javascript">function ChangeStatut() {var eltCheckbox = document.forms[0].charte_photo;var eltSubmit = document.forms[0].validation;if(eltCheckbox.checked == true) {eltSubmit.disabled = false }if(eltCheckbox.checked == false) {eltSubmit.disabled = true }}</script> Par contre je n'arrive toujours pas à faire un window.onload. PS : n'oublie pas les <label> pour les textes liés à un input
Boo2M0rs0 Posté 26 Juin 2005 Posté 26 Juin 2005 Bonjour, mais je n'ai pas réussi à faire fonctionner un window.onload = ChangeStatut() <{POST_SNAPBACK}> Quand tu écrit ce code, cela signifie que tu execute la fonction ChangeStatut tout de suite et que tu attribues sa valeur de retour à window.onload, il faudrait donc écrire: window.onload = ChangeStatut;
Xavier Posté 26 Juin 2005 Posté 26 Juin 2005 Merci Boo2M0rs0 C'est le genre de trucs qui m'échappent encore, mais ça viendra Au final <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html lang="fr"><head> <title>Titre de la page</title> <script type="text/javascript"> function ChangeStatut() { var eltCheckbox = document.forms[0].charte_photo; var eltSubmit = document.forms[0].validation; if(eltCheckbox.checked == true) {eltSubmit.disabled = false } if(eltCheckbox.checked == false) {eltSubmit.disabled = true } } window.onload=ChangeStatut; </script></head><body> <form action="page.php" method="post"> <fieldset> <label><input type="checkbox" name="charte_photo" value="valeur" onClick="ChangeStatut()"> Valider la charte</label> <input type="submit" name="validation" value="S'enregistrer"> </fieldset> </form></body></html> Il me semble que ça devrait fonctionner dans tous les navigateurs (prévoir bien entendu la vérification côté serveur pour ceux qui ont le js désactivé) Attention il y avait une "coquille", c'est method et pas methed
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant