Bonjour.
J'utilise struts 2 mais souhaite gerer l'ajax "manuellement", c'est à dire sans aucun plugin (jar) supplémentaire, (struts-jquery ou dojo).
J'ai donc un formulaire qui lance une action struts lors du submit.
Je souhaite lors de la validation du formulaire, déclencher une action ajax pour afficher par exemple une barre de progression le temps que l'action s'exécute et avant que j'arrive à la page suivante.
Dans l'exemple (pour plus de simplicité), je souhaite afficher tout simplement un DIV suite à la validation du formulaire.
JSP :
Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <s:form method="POST" action="validerConnexion" namespace="/"> <!--<s:textfield name="utilisateur.utCode" label="%{getText('label.utilisateur.utCode')}" onblur="johannjs();"/>--> <s:textfield name="utilisateur.utCode" label="%{getText('label.utilisateur.utCode')}" /> ...
JAVASCRIPT :
Comme indiqué dans le javascript, je n'arrive pas à exécuter l'ajax ET submitter le formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 $(document).ready(function(e) { $( "#monsubmitjquery" ).click(function(e) { // e.preventDefault(); johannjs(); // return false; // si return false : la fonction johannjs (ajax) sort en erreur et le formulaire est submitté //si pas return false : elle s'exécute bien mais le formulaire n'est pas submitté. }); }); function johannjs() { var data = $('#validerConnexion').serialize(); $.ajax({ type : "POST", url : "/DMIST/validerConnexionAjax.action", data : data, beforeSend : function(response) { $('#div2').html('coucou beforeSend'); }, success : function(response) { $('#div2').html(response); }, error : function(e) { alert('Error: ' + e); } }); }
J'ai lu que cela pouvait venir du fait que l'évènement "onclick" attendait un "return false".
Le problème que j'ai :
si je mets "return false" : la fonction johannjs (ajax) sort en erreur et le formulaire est submitté
si je ne mets pas "return false" : elle s'exécute bien mais le formulaire n'est pas submitté.
Y-aurait-il une solution?
Pour votre information, ma foction ajax fonctionne très bien si la déclenche sur l'évènement onBlur d'un élément (textfield) du formulaire.
Merci d'avance.
Johann
Partager