Mistä voisin estää ”oletko varma, että haluat poistua tältä sivulta” ponnahdusikkunan, kun poistut lahjoitussivulta (esim. lahjoitus) ilman, että jatkat avustusta. Ymmärrän, että se voi estää poistumasta sivulta vahingossa kesken lomakkeen täyttämisen, mutta mielestäni se on enemmän ärsyttävää kuin hyödyllistä murto-osassa vahingossa tapahtuvia tapauksia. Sivulla on myös Facebook-kirjautuminen, joka , kun sitä käytetään, pakottaa sivun latautumaan uudelleen ja kutsuu ”jätä tämä sivu” -ponnahdusikkunan. Tämä on hämmentävää käyttäjää, joka ei tiedä, että heidän on painettava ”poistua tältä sivulta” -painiketta kirjautua sisään (ei mainitakseni, että ”he todella pysyvät sivulla, mikä aiheuttaa sekaannusta).
Tämä on Joomlassa (3.4.4 w / CiviCRM 4.6.9)
Oletan siellä ”s onbeforeunload
-toiminto – yksi näkyy /administrator/components/com_civicrm/civicrm/js/Common.js
Varoitus näkyy, vaikka käyttäjä ei ole teki mitään merkintöjä lomakkeeseen. Eikö varoituksen pitäisi ilmestyä vasta, kun ne tehdään?
Kiitos vihjeistä.
Kommentit
- OK, joten kommentoi ' ennen latausta Edellä mainitun tiedoston ' -funktio poistaa ehdottomasti ponnahdusikkunan, mutta tapa, jonka minun olisi pitänyt todella kysyä, on se, miten voimme käyttää toimintoa vain, kun jotain syötetään / valitaan lomakkeessa sivulla. Koska siinä tapauksessa ' on hyödyllistä.
- I ' d havaitsin tämän käyttäytymisen kerran tai kahdesti viime aikoina 4.6 Luulen, että hetken aikaa tutkitaan sitä, jos näen sen uudestaan. Se on melko häiritsevää, mutta koska se olisi tapahtunut lähetettäessä tai ladattaessa, oli juuri lyönyt ESC: tä tai mitä tahansa, mikä saa sen menemään ASAP: D
Vastaa
CiviCRM käyttää jQuery-ohjelmaa lomaketulojen katseluun ja antaa varoituksen vain, jos muutoksia ei ole tallennettu. Löydät sen koodin kohdasta Common.js . Kun kokeilen demopalvelimen näytettä avustussivulta, se näyttää toimivan oikein; jos avaa lahjoitussivu , kirjoita mitään ja sulje välilehti, en saa varoitusta. Mutta jos annan summan ja yritän jättää sen, ponnahdusikkuna avautuu. .
Jos olet valmis siihen, virheenkorjaus CRM.utils.initialValueChanged
-toiminnon avulla selvittääksesi miksi civi luulee, että muoto on muuttunut, kun se ei ole hyödyllistä palautetta meille ohjelmiston parantamisessa.
Tai voit vain lisätä pienen javascriptin FB-kirjautumispainikkeeseen. Jos nykyinen merkintä näyttää <button type="submit">
sitten voit lisätä siihen, jotta se näyttää tältä: <button type="submit" onclick="window.onbeforeunload = null;">
Mutta vakavasti, virheenkorjauspalautteesta olisi apua.
Kommentit
- Kiitos, Coleman, tiedoista. En ' en ole kovin kehittäjä, mutta odotan miksi Civi uskoo, että jotakin on muutettu lomakkeessa, ja lähetä viesti muille (ja Civi-tiimille).
- Vain arvaus – onko mahdollista, että selaimen automaattinen täyttö lisää jotain lomakkeeseen?
vastaus
Näin tapahtuu, kun sisäänrakennettu profiili käyttäjän rekisteröintiä varten (”Nimi ja osoite” on of-the-box title) käytetään kirjoitussivulla. Vaihda se toiseen profiiliin, niin ponnahdusikkuna ei tule näkyviin. Toisti tämän Joomla CiviCRM -demosivustolla.
Kommentit
- Olisi hyvä rajata se alas sen profiilin tiettyyn kenttään, joka aiheuttaa sen .
- Kiitos, että pyysit selvennystä, Coleman. ' ei ole mikään kentistä – käytin kaikkia samoja uudessa profiilissa, joka ' ei ole sisäänrakennettu yksi käyttäjän rekisteröintiä varten, ja se toimii täydellisesti.
- että ' s … outoa.
- I ' m saada tämä virhe toisen profiilin avulla
Vastaa
Jos se” s käyttö muille: Halusin tehdä toistuvan lahjoituksen valintaruudun (”Haluan antaa tämän summan kuukausittain”) totta (valittu) oletusarvoisesti tietyllä lahjoituslomakkeella. Käytin seuraavaa mukautettua javascriptiä.
Kun olet asettanut javascriptin arvoksi ”tarkistettu”, .data("crm-initial-value", true)
-koodi oli välttämätön, jotta CiviCRM ei voinut valittaa tallentamattomista muutoksista siirtyessään toiselle sivulle.
<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>