Problème dans le onload

Résolu/Fermé
barbouz84 Messages postés 4 Date d'inscription mercredi 12 décembre 2012 Statut Membre Dernière intervention 15 décembre 2012 - 12 déc. 2012 à 03:20
barbouz84 Messages postés 4 Date d'inscription mercredi 12 décembre 2012 Statut Membre Dernière intervention 15 décembre 2012 - 15 déc. 2012 à 00:56
Bonjour,

Cela fait maintenant presque 3 heures que je m'arrache les cheveux sur mon problème... Dans le windows.onload, je fais appel à une fonction qui se déclenche par un évènement, mais rien ne se passe. Si je rajoute des parenthèses () à la fin du nom de la fonction, la fonction se déclenche alors qu'elle ne devrait pas, elle se déclenche dès le chargement de la page alors qu'elle devrait se déclencher seulement lorsque l'évènement se passe. voici mon code:

window.onload = function(){
recupcontact();
var addButton = document.getElementById('ok');
addButton.onsubmit = add;
var back1 = document.getElementById("back1");
back1.onclick = function(){
open ("My contact-book.html");
window.close();
};
};

A savoir que 'ok' est l'id d'un bouton ds mon html.
Ds le cas ci-dessus, même si j'appuie sur mon bouton 'ok' , la fonction 'add' ne se lance pas.
Ds le cas ci-dessous (avec les parenthèses), quand je lance ma page aussitôt la fonction 'add' se lance, alors qu'elle ne devrait pas (elle devrait se lancer seulement lorsque j'appuie sur le bonton 'ok')

window.onload = function(){
recupcontact();
var addButton = document.getElementById('add');
addButton.onsubmit = add();
var back1 = document.getElementById("back1");
back1.onclick = function(){
open ("My contact-book.html");
window.close();
};
};

C'est à n'y rien comprendre... Pouvez vous m'aider?? Merci pour toute aide éventuelle, je ne suis que débutant en javascript et cela saute peut-être aux yeux d'un connaisseur

5 réponses

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
12 déc. 2012 à 08:34
bonjour,

essais en remplaçant
addButton.onsubmit = add();
par
addButton.addEventListener('submit',add,true);

par contre c'est étrange de faire ça dans un onload...
0
barbouz84 Messages postés 4 Date d'inscription mercredi 12 décembre 2012 Statut Membre Dernière intervention 15 décembre 2012
12 déc. 2012 à 17:31
Oui j'avais essayé avec cette méthode du DOM2, j'ai rééssayé, mais il se passe tjrs la même chose... C'est à dire pas grd chose. En ft il se passe quand même quelque chose: mon html est un formulaire, et lorsque je clique sur OK, les valeurs que j'avais rentré ds les champs disparaissent, pour laisser les champs libres à nouveau. J'ai l'impression que la page se "recharge" , alors le fait d'appuyer sur OK est censé appelé la fonction add.
Sinon, pourquoi c'est étrange ds un onload? Faudrait mettre ça ou?
Merci en tout cas
0
barbouz84 Messages postés 4 Date d'inscription mercredi 12 décembre 2012 Statut Membre Dernière intervention 15 décembre 2012
12 déc. 2012 à 17:47
A oui, aussi... Lorsque je change 'submit' par 'click', tout fonctionne très bien. La faute à submit. Le problème c'est que j'ai besoin de ce submit dans le html pr me servir de "required" (une fonctionnalité de html5 qui surligne les contours des champs du formulaire qui n'ont pas été remplis lors de la soumission du formulaire, et qui ne permet pas la soumission du formulaire tant que ceux-ci ne sont pas remplis). Je comprend pas...
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
12 déc. 2012 à 22:23
est ce que ta fonction retourne false si les champs ne sont pas vérifié ?
0
Utilisateur anonyme
14 déc. 2012 à 23:20
Bonsoir

Lorsque je change 'submit' par 'click', tout fonctionne très bien

submit est un événement de formulaire, je ne crois pas qu'onsubmit marche sur un bouton.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
barbouz84 Messages postés 4 Date d'inscription mercredi 12 décembre 2012 Statut Membre Dernière intervention 15 décembre 2012
15 déc. 2012 à 00:56
Merci Le père, l'erreur était effectivement là. Il fallait que je mette l'event submit sur le formulaire et non sur le bouton...
0