Bonjour à tous,
J'ai un problème sur une application qui contient des balises a sur lesquelles il y a un attribut href et un attribut onclick.
L'idée est d'effectuer la fonction puis d'effectuer le href.
Cela se présente ainsi :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <a href="action.do?param=5" onclick="javascript:return sauvegarder();">lien</a>
La fonction fait un submit sur le form de la page :
J'ai rajouté le return true, je pensais que le problème pouvait venir de là mais visiblement non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function sauvegarder() { if (document.forms[0].options.value == ' '){ alert("Veuillez préalablement sélectionner une option."); return false; } else{ document.forms[0].cmd.value='sauvegarder'; document.forms[0].submit(); } return true; }
Le problème est que le formulaire n'est jamais réellement envoyé à la page. Ma page action.do est un traitement en java qui n'est appelé que lorsque je mets un point d'arrêt sur le return true;
C'est comme si la fonction se déroulait trop rapidement et que l'envoi de mon formulaire ne se faisait pas (d'ailleurs avec firebug lorsque je fais le traitement normal, l'onglet réseau me montre le chargement de mon action.do en train de tourner éternellement et sans jamais aucune valeur de retour (et pour avoir un point d'arrêt sur mon application java, je sais que la page n'est effectivement jamais appelée)), et que le href soit chargé sans jamais que cette action soit effectuée.
What do developpez.net?
Vous avez une idée qui pourrait m'éclairer? Je sais que je pourrais faire une palanquée de traitement avec jquery et quelque chose de beaucoup plus propre probablement en faisant un appel Ajax, mais le système tel qu'il existe fonctionne sur IE6 (oui je sais, ça n'est pas réellement un exploit), j'aimerais comprendre pourquoi aujourd'hui sur des navigateurs modernes (firefox par ex.) ça ne fonctionne pas.
Merci.
(Accessoirement la balise code ne semble pas fonctionner quand je clique sur le petit dièse, obligé de les rajouter à la main)
Partager