Cum suprim “ sunteți sigur că doriți să părăsiți această pagină ” popup din pagina de contribuții

Unde aș putea suprima fereastra pop-up „sunteți sigur că doriți să părăsiți această pagină” atunci când părăsiți o pagină de contribuții (de exemplu, donații) fără a continua efectiv contribuția. Îmi dau seama că poate fi acolo pentru a preveni părăsirea accidentală a paginii la jumătatea drumului prin completarea formularului, dar cred că este mai enervant decât util în fracțiunea de cazuri accidentale. , atunci când este utilizat, forțează pagina să se reîncarce și astfel invocă fereastra pop-up „părăsiți această pagină”. Acest lucru este confuz pentru utilizatorul care nu ar ști că trebuie să apese butonul „părăsiți această pagină” pentru a vă conecta (nu să menționez că „vor rămâne de fapt pe pagină, de unde și confuzia).

Aceasta este pe Joomla (3.4.4 w / CiviCRM 4.6.9)

Presupun că există „este o funcție onbeforeunload – una apare în /administrator/components/com_civicrm/civicrm/js/Common.js

Avertismentul apare chiar și atunci când utilizatorul nu a făcut înregistrări în formular. Nu ar trebui să apară avertismentul doar atunci când apar?

Vă mulțumim pentru indicii.

Comentarii

  • OK, deci comentând ' înainte de descărcare Funcția ' din fișierul menționat mai sus elimină cu siguranță fereastra pop-up, dar modul în care ar fi trebuit să pun întrebarea este cum am putea invoca funcția numai atunci când ceva este introdus / selectat în formular pe pagina. Deoarece, în acest caz, este ' util.
  • Am ' observat acest comportament o dată sau de două ori în ultima vreme pe 4.6 site-urile pe care cred că le va lua o clipă să le analizez dacă le văd din nou. Este cam deranjant, dar, din moment ce s-ar fi întâmplat la trimiterea sau reîncărcarea, tocmai apăsase ESC sau orice altceva care o face să dispară ASAP: D

Răspunde

CiviCRM folosește jQuery pentru a urmări intrările formularului și pentru a da un avertisment numai dacă există modificări nesalvate. Veți găsi codul pentru aceasta în Common.js . Când încerc o pagină de contribuție eșantion pe serverul demonstrativ, se pare că funcționează corect; dacă deschideți o pagină de contribuție , nu introduceți nimic și închideți fila, nu primesc niciun avertisment. Dar dacă introduc o sumă și apoi încerc să o las, apare mesajul de mai înainte de descărcare .

Dacă „vă pregătiți, depanați funcția CRM.utils.initialValueChanged pentru a afla de ce civi crede că forma a fost modificată când nu ar fi un feedback util pentru noi, îmbunătățind software-ul.

Sau puteți adăuga un pic de javascript la butonul de conectare FB. Dacă marcajul existent arată ca <button type="submit"> atunci puteți adăuga la acesta, astfel încât să arate ca <button type="submit" onclick="window.onbeforeunload = null;">

Dar, serios, feedback-ul de depanare ar fi util.

Comentarii

  • Mulțumesc, Coleman, pentru informații. Nu ' nu sunt un dezvoltator, dar voi arăta de ce Civi crede că s-a schimbat ceva pe formular și postează aici pentru alții (și pentru echipa Civi).
  • Doar ghicind – este posibilă completarea automată a browserului să insereze ceva în formular?

Răspuns

Acest lucru se întâmplă atunci când profilul încorporat pentru înregistrarea utilizatorului („Name and Address” este „out” titlul casetei) este utilizat pe pagina de contribuție. Schimbați-l cu un alt profil și fereastra pop-up nu apare. Am replicat acest lucru pe site-ul demonstrativ Joomla CiviCRM.

Comentarii

  • Ar fi bine să îl restrângeți la câmpul special din acel profil care îl cauzează .
  • Vă mulțumim că ați solicitat clarificarea, Coleman. ' nu este unul dintre câmpuri – le-am folosit pe aceleași într-un profil nou care ' nu este încorporat una pentru înregistrarea utilizatorului și funcționează perfect.
  • că ' s … ciudat.
  • I ' Primesc această eroare folosind un profil diferit

Răspuns

În caz că de folos pentru alții: am vrut să fac caseta de selectare a donațiilor recurente („Vreau să contribuie cu această sumă în fiecare lună”) adevărată (bifată) în mod implicit pe un anumit formular de donație. Am folosit următorul javascript personalizat pentru a o face.

După setarea valorii la „bifat” în javascript, codul .data("crm-initial-value", true) a fost necesar pentru a împiedica CiviCRM să se plângă de modificările nesalvate atunci când navigați la o altă pagină.

<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> 

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *