Hur undertrycker jag “ är du säker på att du vill lämna denna sida ” popup från bidragssidan

Var kan jag undertrycka popupen ”är du säker på att du vill lämna den här sidan” när du lämnar en bidragssida (t.ex. donation) utan att faktiskt fortsätta med bidraget Jag inser att det kan finnas där för att förhindra att sidan lämnas oavsiktligt halvvägs genom att fylla i formuläret men jag tycker faktiskt att det är mer irriterande än till hjälp i bråkdelen av oavsiktliga fall. Jag har också en Facebook-inloggning på sidan som , när den används, tvingar sidan att ladda om och påkallar därmed popupen ”lämna den här sidan”. Detta är förvirrande för användaren som inte vet att de behöver trycka på knappen ”lämna den här sidan” för att bli inloggad (inte att nämna att de ”faktiskt kommer att stanna kvar på sidan, därav förvirringen).

Detta är på Joomla (3.4.4 w / CiviCRM 4.6.9)

Jag antar där ”s en onbeforeunload -funktion – en visas i /administrator/components/com_civicrm/civicrm/js/Common.js

Varningen visas även när användaren inte har gjorde några poster på formuläret. Borde inte varningen dyker upp bara när de gör det?

Tack för alla pekare.

Kommentarer

  • OK, så kommentera ' innan du laddar ' -funktionen i filen som jag nämnde ovan tar definitivt bort popup men det sätt jag verkligen borde ställa frågan är hur skulle vi kunna åberopa funktionen bara när något matas in / väljs i formuläret på sidan. För i så fall är det ' s användbart.
  • Jag ' d observerade detta beteende en eller två gånger nyligen den 4.6 webbplatser tror jag tar en stund att undersöka det om jag ser det igen. Det är ganska besvärande men eftersom det skulle ha hänt när du skickar in eller laddar om, precis hade träffat ESC eller vad som helst får det att försvinna ASAP: D

Svar

CiviCRM använder jQuery för att titta på formuläringångar och varna endast om det inte finns några sparade ändringar. Du kommer att hitta koden för den i Common.js . När jag testar en exempelbidragssida på demoservern ser det ut att fungera korrekt, om jag öppna en bidragssida , skriv ingenting och stäng fliken, jag får ingen varning. Men om jag anger ett belopp och sedan försöker lämna det dyker upp meddelandet innan nedladdningen .

Om du vill ”felsöka CRM.utils.initialValueChanged -funktionen för att ta reda på varför civi tror att formuläret har ändrats när det skulle inte vara till hjälp för oss att förbättra programvaran.

Eller så kan du bara lägga till ett litet javaskript till din FB-inloggningsknapp. Om den befintliga markeringen ser ut som <button type="submit"> då kan du lägga till det så att det ser ut som <button type="submit" onclick="window.onbeforeunload = null;">

Men allvarligt, felsökningsfeedbacken skulle vara till hjälp.

Kommentarer

  • Tack Coleman för informationen. Jag ' är inte mycket utvecklare men kommer att se ut till varför Civi tycker att något har ändrats på formuläret och posta här för andra (och för Civi-teamet).
  • Gissa bara – är det möjligt att webbläsare fyller automatiskt i något i formuläret?

Svar

Detta händer när den inbyggda profilen för användarregistrering (”Namn och adress” är ut- of-the-box title) används på bidragssidan. Byt den mot en annan profil så visas inte popup-fönstret. Replikerade detta på Joomla CiviCRM-demosidan.

Kommentarer

  • Skulle vara bra att begränsa det till det specifika fältet i den profilen som orsakar det .
  • Tack för att du förklarade förtydligandet, Coleman. Det ' är inte något av fälten – jag använde alla samma i en ny profil som ' inte är den inbyggda en för användarregistrering och den fungerar perfekt.
  • att ' s … konstigt.
  • I ' Jag får det här felet med en annan profil

Svar

Om det är av användning för andra: Jag ville göra kryssrutan för återkommande donationer (”Jag vill bidra med detta belopp varje månad”) som standard (markerad) på ett visst donationsformulär. Jag använde följande anpassade javaskript för att göra det.

Efter att ha ställt in värdet till ”markerat” i javascript var .data("crm-initial-value", true) -koden nödvändig för att förhindra att CiviCRM klagade på ändringar som inte sparats när man navigerar till en annan sida.

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

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *