Comment supprimer la “ êtes-vous sûr de vouloir quitter cette page ” popup de la page de contribution

Où pourrais-je supprimer la fenêtre contextuelle « êtes-vous sûr de vouloir quitter cette page » lorsque vous quittez une page de contribution (par exemple, un don) sans réellement poursuivre la contribution. Je me rends compte que cela peut être là pour éviter de quitter accidentellement la page à mi-chemin du remplissage du formulaire, mais je pense en fait que cest plus ennuyeux quutile dans la fraction des cas accidentels. De plus, jai un identifiant Facebook sur la page, ce qui , lorsquil est utilisé, force la page à se recharger et invoque ainsi la fenêtre contextuelle «quitter cette page». Ceci est déroutant pour lutilisateur qui ne saurait quil doit appuyer sur le bouton «quitter cette page» pour se connecter (et non pour mentionner quils « resteront réellement sur la page, doù la confusion).

Ceci est sur Joomla (3.4.4 avec CiviCRM 4.6.9)

Je suppose là « est une fonction onbeforeunload – lune apparaît dans /administrator/components/com_civicrm/civicrm/js/Common.js

Lavertissement apparaît même lorsque lutilisateur na pas fait des entrées sur le formulaire. Lavertissement ne devrait-il pas apparaître uniquement quand ils le font?

Merci pour tous les pointeurs.

Commentaires

  • OK, alors commenter le ' onbeforeunload La fonction ' dans le fichier que jai mentionné ci-dessus supprime définitivement le popup mais la façon dont jaurais vraiment dû poser la question est de savoir comment pourrions-nous invoquer la fonction uniquement lorsque quelque chose est entré / sélectionné dans le formulaire sur la page. Parce que dans ce cas, ' est utile.
  • Jai ' observé ce comportement une ou deux fois dernièrement sur 4.6 Je pense que les sites prendront un moment pour lexaminer si je le revois. Cest un peu gênant, mais depuis cela se produirait lors de la soumission ou du rechargement, je venais de frapper ESC ou quoi que ce soit qui le fasse disparaître dès que possible: D

Réponse

CiviCRM utilise jQuery pour surveiller les entrées de formulaire et donner un avertissement uniquement sil y a des modifications non enregistrées. Vous trouverez le code correspondant dans Common.js . Lorsque jessaie un exemple de page de contribution sur le serveur de démonstration, il semble fonctionner correctement; si je ouvrez une page de contribution , nentrez rien et fermez longlet, je nobtiens aucun avertissement. Mais si jentre un montant et que jessaye de le laisser, le message onbeforeunload saffiche. .

Si vous êtes prêt, déboguez la fonction CRM.utils.initialValueChanged pour découvrir pourquoi civi pense que le formulaire a été modifié lorsque cela ne nous serait pas utile pour améliorer le logiciel.

Ou vous pouvez simplement ajouter un peu de javascript à votre bouton de connexion FB. Si le balisage existant ressemble à <button type="submit"> alors vous pouvez lajouter pour quil ressemble à <button type="submit" onclick="window.onbeforeunload = null;">

Mais sérieusement, les commentaires de débogage seraient utiles.

Commentaires

  • Merci, Coleman, pour linfo. Je ' je ne suis pas vraiment un développeur mais jaurai lair pourquoi Civi pense que quelque chose a été changé sur le formulaire et le poster ici pour les autres (et pour léquipe Civi).
  • Juste deviner – est-il possible que le remplissage automatique du navigateur insère quelque chose dans le formulaire?

Réponse

Cela se produit lorsque le profil intégré pour lenregistrement de lutilisateur (« Nom et adresse » est le of-the-box title) est utilisé sur la page de contribution. Échangez-le pour un autre profil et la fenêtre contextuelle napparaîtra pas. Reproduit ceci sur le site de démonstration de Joomla CiviCRM.

Commentaires

  • Il serait bon de le limiter au champ particulier de ce profil qui le cause .
  • Merci davoir demandé la clarification, Coleman. Il ' nest aucun des champs – jai utilisé tous les mêmes dans un nouveau profil qui ' nest pas intégré un pour lenregistrement des utilisateurs, et cela fonctionne parfaitement.
  • que ' est … bizarre.
  • I ' je reçois cette erreur en utilisant un profil différent

Answer

Au cas où il » s utile aux autres: je voulais que la case à cocher de don récurrent (« Je veux contribuer ce montant tous les mois ») true (cochée) par défaut sur un formulaire de don particulier. Jai utilisé le javascript personnalisé suivant pour le faire.

Après avoir défini la valeur sur « vérifié » en javascript, le code .data("crm-initial-value", true) était nécessaire pour empêcher CiviCRM de se plaindre des modifications non enregistrées lors de la navigation vers une autre page.

<script> CRM.$(function($) { // make recurring contribution checkbox true by default var r = $("#is_recur"); if (!r.length) { return; } r.attr("checked", "checked"); r.prop("defaultChecked", true); r.prop("checked", true); // necessary to tell Civi the default value has changed r.data("crm-initial-value", true); </script> 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *