Předmět Autor Datum
Tak to nahraď testem s hvězdičkou, ne? Jak přesně používáš ten Ajax?
Wikan 24.07.2019 23:33
Wikan
Jenže ta hvězdička je v spanu, který má ještě třídu. Ideální by bylo to nahradit celé vyjma poslední…
MichalDM 24.07.2019 23:40
MichalDM
To jsi nebyl moc konkrétní.
Wikan 25.07.2019 09:02
Wikan
Takhle vypadá label - obrázek1. Když použiji kód $(".wpforms-field-label:eq(0)").html("Name and Sur…
MichalDM 25.07.2019 10:28
MichalDM
A nevoláš náhodou v ajaxComlete další ajax request?
Wikan 25.07.2019 11:00
Wikan
Ne. Teda aspoň ve vlastním jQuery.
MichalDM 25.07.2019 11:17
MichalDM
Takže jinak jo? Nebo jak to mám chápat?
Wikan 25.07.2019 11:25
Wikan
Pochopitelně neznám JavaScript šablony, takže to nemůžu vědět. Ale když to smažu, tak to funguje sp…
MichalDM 25.07.2019 12:55
MichalDM
Problém je určitě v syntaxi Ajaxcomplete. Téměř jistě bych řekl, že není.
Wikan 25.07.2019 15:34
Wikan
Ano, sorry. Máš pravdu. Problém je v nastavení textu. Pokud ho smažu a nechám tam pouze log, tak je…
MichalDM 25.07.2019 15:48
MichalDM
Problém není se samotným ajaxem, ale nastavením textu v něm. Jde o to, že ajaxComplete se nezavolá p… poslední
MichalDM 26.07.2019 23:23
MichalDM
to HTML v tom labelu obsahuje text+span s hvezdickou. Pokud to HTML nahradis cistym textem, tak se p…
gilhad 25.07.2019 14:08
gilhad
Ano, stačí to upravit na $(".wpforms-field-label:eq(0)").html("Name and Surname <span class='wpform…
MichalDM 25.07.2019 16:02
MichalDM

Takhle vypadá label - obrázek1.
Když použiji kód

$(".wpforms-field-label:eq(0)").html("Name and Surname");

tak se změní na (obrázek2), což pochopitelně nechci.

Pokud použiji kód

...
$(".wordpress-form").ajaxComplete(function() {
    console.log("pokus");
    $(".wpforms-confirmation-container-full p").text("Thanks for contacting us! We will be in touch with you shortly.");
...

tak se v konzoli zobrazí (obrázek3). Pochopitelně, počet není konečný, pořád se zvyšoval, což je špatně.
A ke změnu textu nedošlo, pouze se smazal původní, ale nic se nepřidalo.

Problém není se samotným ajaxem, ale nastavením textu v něm. Jde o to, že ajaxComplete se nezavolá pouze jednou. console.log to vícekrát vypíše, ovšem změna textu to zacyklí.
V debug mode to jde vidět, že se p ustavičně mění. V OOP by změna, na stejnou hodnotu, neměla na ven efekt, ale tady to očividně funguje jinak.
Proto upravím kód do této podoby

$(".wordpress-form").ajaxComplete(function() {
    $(".wpforms-confirmation-container-full p:contains('Děkujeme')").text("Thanks for contacting us! We will be in touch with you shortly.");
});

Podruhé to pochopitelně neprojde, nezacyklí se to a výsledek je správný.

Tím jsem pouze vyřešil vzniklý problém, ale neodstranil jeho příčinu.
Jenže, to pravděpodobně souvisí s kódem pluginu a ten měnit nebudu.

Díky

to HTML v tom labelu obsahuje text+span s hvezdickou. Pokud to HTML nahradis cistym textem, tak se pochopitelne tim textem nahradi a zustane tam jen ten text bez dalsich casti toho puvodniho (nyni prepsaneho) HTML. Takze bud tam ten span dopsat, nebo nahradit pouze ten text, ale uz ne ostatni vnorene tagy - jestli je na to vytazeni pouheho textu funkce netusim, ale mohla by byt funkce na vytazeni vnorenych child-tagu, kterou bys vytahnul tu hvezdicku a pak ji zase pridal v puvodnim zneni.

Zpět do poradny Odpovědět na původní otázku Nahoru