Je développe une application web en utilisant A4J, Richfaces. Une de mes exigences est, je dois vérifier si l'utilisateur a changé des valeurs dans le formulaire quand il essaye de s'éloigner de la page.Intercepter a4j: commandButton request
J'ai des boutons de sauvegarde et d'annulation dans la page. J'utilise le bouton a4j:command
pour annuler la fonctionnalité. En cliquant sur le bouton annuler devrait faire ci-dessous les choses
- Vérifiez si l'utilisateur a modifié quoi que ce soit sous la forme (ce que je fais en utilisant javascript et un drapeau si l'utilisateur a changé toutes les valeurs)
- boîte de confirmation d'affichage (javascript confirmer avec des valeurs « voulez-vous vraiment annuler les modifications - OUI NON ») lorsque l'utilisateur change de forme des valeurs
- Si l'utilisateur dit OUI, puis soumettre le formulaire en utilisant AJAX (en utilisant a4j)
Mon a4j le code du bouton de commande est comme ceci
<a4j:commandButton action="MyClass.cancel_action"
onclick="checkIsPageChanged()"/>
La question ici est, tout en utilisant en utilisant a4j:commandButton
, je ne peux pas appeler la fonction javascript intermédiaire (la fonction qui vérifie si l'utilisateur a mis à jour toutes les valeurs et affiche la boîte de confirmation), puis soumettre la demande à l'aide ajax. J'ai regardé le code généré par JSF et le code est comme (pas exactement, mais Syntact)
<input type="button"
onclick="checkIsPageChanged();AJAX.submit('')/>
La chose est quand je clique sur le bouton, il appelle que checkIsPageChanged()
et ne pas appeler AJAX.submit()
.
Toute solution de contournement pour cela va m'aider.
Merci d'avance.
Votre code fonctionne, mais il convient de préciser que renvoyer 'true' ne soumettra pas non plus la demande. Voir https://community.jboss.org/thread/3755?start=0&tstart=0&_sscc=t En effet, 'onclick ="! IsPageChanged() "' ne fonctionnera pas. –