Aller au contenu

Sujets conseillés

Posté

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.

@++ :)

Posté (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

:fou:

Modifié par gesualda
Posté

Petit problème : sans javascript le bouton de validation ne sera jamais activé :angry: 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 :nono:

Bref, permets-moi de te dire que ça ne va pas du tout :hypocrite:

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() :huh:

Posté

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 ;)

Posté

Bonjour,

mais je n'ai pas réussi à faire fonctionner un window.onload = ChangeStatut()  :huh:

<{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;

Posté

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 ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...