Résolu [JS] Action au chargement de la page (désactivation de boutons)

Solutions (5)
Tags :
  • Action
  • Input
  • Javascript
  • Programmation
Anonyme |
Bonjour,

voilà j'ai un petit soucis très bizarre dans mon code Javascript. J'ai un formulaire avec plein de checkbox et de boutons (input type="submit"). Lorsque que je n'ai aucune de checkbox coché, mes boutons se désactivent (disabled=true) et lorsqu'il y a au moins une checkbox de cocher, mes boutons se réactivent. Tout cela marche, sauf au démarrage de la page. Voici mon code

  1. <form name="form" id="form" action="liste.php" method="post">
  2. <input type="button" value="Ajouter un membre" name="ajouter" onclick="javascript:location.href='ajout.php'" /><br />
  3.  
  4. <!-- BOUTONS -->
  5. <input type="submit" name="supprimer" id="supprimer" value="Supprimer" onclick="return confirmation()"/>
  6. <input type="submit" name="non-lu" id="non-lu" value="Marqué comme non lu(s)" />
  7. <input type="submit" name="lu" id="lu" value="Marqué comme lu(s)" />
  8. <input type="submit" name="accepter" id="accepter" value="Accepté(s)" />
  9. <input type="submit" name="refuser" id="refuser" value="Refusé(s)" />
  10. <input type="submit" name="desister" id="desister" value="Désisté(s)" />
  11. <input type="submit" name="payer" id="payer" value="Payé(s)" />
  12.  
  13. .......
  14.  
  15. <?php
  16. ....
  17.  
  18. echo "<td><input type='checkbox' name='check[]' value=".$ligne[0]." onchange='check_verif()' /></td>";
  19. // $ligne[0] = id
  20. .....
  21. ?>
  22.  
  23. ......
  24. </form>



  1. window.onload = init() // au démarage de la page exécuté la fonction init()
  2.  
  3. function init() // toutes les options au démérage sont contenues dans cette fonction
  4. {
  5. btn_submit = ['supprimer', 'non-lu', 'lu','accepter','refuser', 'desister', 'payer']; // initialisation du tableau regroupant l'id des boutons de paramétrage
  6. btn_disabled(); // désactivation de ces boutons
  7.  
  8. }
  9.  
  10. function btn_disabled() // j'ai une fonction btn_enable() pour activer les boutons et une autre check_verif() qui verifie si j'ai des checkbox de cocher ou non pour savoir quelle fonction j'appelle
  11. {
  12. for(var i = 0;i<btn_submit.length;i++)
  13. {
  14. document.getElementById(btn_submit[i]).disabled = true;
  15. }
  16. }


Toutes mes fonctions marchent. Mais au démarrage de la page elle me désactive pas mes boutons voulues, simplement au démarrage car après c'est bon.
Comment faire ???

Je précise que je veux les désactiver en javascript car si le JS est désactivé chez l'utilisateur, qu'il puisse continuer sans problème toutes les opérations


Merci d'avance
Contenus similaires
Meilleure solution
partage
|
Problème compris et résolu :) 
En fait, le window.onLoad() agit avant que la page soit complètement chargée, le document.getElementById() retourne null.
Donc, il y a deux solutions, toutes les deux impliquant que tu supprimes ta ligne N°1 du javascript.

Solution 1: mettre l'appel à init() à la fin de ta page html (avant le </body>)
Solution 2: mettre l'appel à init() dans la balise body: <body onload="init();">

J'ai testé les deux, ça fonctionne sans problème.
  • Commenter cette solution |
Score
0
òh
òi
Anonyme |
Comment on dit de-nouveau ??? T'assure ;) 
merci, ça m'arrange à mort en plus, car j'utilise dans une autre page le même javascript et je ne voulais pas que mon init() se démarre dans l'autre page ;) 
  • Commenter cette réponse |
Score
0
òh
òi
Anonyme |
Meilleure réponse sélectionnée par NiReaS@idn.
  • Commenter cette réponse |
Score
0
òh
òi
Anonyme |
Ce n'ai pas une bêtise c'est ce que j'avais fait, mais si tu ne met pas de var, c'est justement déclarer en global. Et si ce n'était pas en global pourquoi ça marche après ?? car j'utilise ce tableau tout le temps, je l'initialise dans mon init() que je déclare en global et voilà, je fais ce que je veux avec ce tableau dans n'importe quelle fonction ;) 
  • Commenter cette réponse |
Score
0
òh
òi
|
Je vais sûrement dire une énormité, mais ne devrais-tu pas déclarer la var btn_submit hors des fonctions afin qu'elle soit rendue globale (utilisable dans toutes les fonctions ?)
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS