Cum să dezactivezi autocompletarea pentru input-uri în Contact Form 7?

25 sept. 2018, 11:32:42
Vizualizări: 18.5K
Voturi: 2

Am codul de mai jos pentru Contact Form 7. De obicei folosesc autocomplete="off" pentru câmpurile de input HTML. Dar nu reușesc să aflu cum să fac același lucru pentru Contact Form 7.

<div class="row">
<div class="col-md-6">
    [text* FirstName placeholder "Nume"]
</div>
<div class="col-md-6">
    [text* LastName placeholder "Prenume"]
</div>
<div class="col-md-12">
    [email* EmailAddress placeholder "Adresă de email"]
</div>
<div class="col-md-12">
    [text* desc placeholder "Spune-ne câte ceva despre tine..."]
</div>
<div class="col-md-12">
    [submit "Trimite"]
</div>
</div>
0
Toate răspunsurile la întrebare 3
0

Conform întrebării și răspunsului de la dezvoltator plasat aici: https://wordpress.org/support/topic/autocomplete-off-3/

Trebuie doar să adăugați opțiunea autocomplete:off la shortcode:

[email your-email autocomplete:off "example@example.com"]

Totuși, dacă plugin-ul nu a fost actualizat conform menționat în acea întrebare pentru a folosi autocomplete:false, Chrome s-ar putea să o ignore. Dacă încă nu funcționează, poate fi necesar să contactați autorul plugin-ului pentru suport. Funcționalitatea de autocomplete a fost adăugată în acest plugin începând cu versiunea 4.5.

25 sept. 2018 13:43:25
2

Funcționalitatea de autocompletare a tag-urilor în setările formularului nu mai funcționează (în versiunea actuală a plugin-ului Contact Form 7 5.1.3).

Singura soluție care a funcționat pentru mine a fost adăugarea de atribute personalizate datorită https://stackoverflow.com/a/46316728/1720476.

De exemplu, dacă aveți câmpuri precum FirstName și LastName, unde doriți să dezactivați autocompletarea.

Adăugați acest cod în fișierul functions.php:

add_filter( 'wpcf7_form_elements', 'imp_wpcf7_form_elements' );
function imp_wpcf7_form_elements( $content ) {
    $str_pos = strpos( $content, 'name="FirstName"' );
    if ($str_pos) {
        $content = substr_replace( $content, ' autocomplete="both" autocomplete="off" ', $str_pos, 0 );     
    }

    $str_pos = strpos( $content, 'name="LastName"' );
    if ($str_pos) {
        $content = substr_replace( $content, ' autocomplete="both" autocomplete="off" ', $str_pos, 0 );
    }

    return $content;
}
9 iul. 2019 20:48:07
Comentarii

Super. Mulțumesc pentru postarea răspunsului pentru versiunea actualizată.

Varsha Dhadge Varsha Dhadge
10 iul. 2019 10:59:01

E nebunie, singurul care a funcționat!! Mulțumesc, frate!!

Rodrigo Zuluaga Rodrigo Zuluaga
14 iul. 2020 00:15:09
0

Răspunsul sugerat de Arnis funcționează dacă utilizați același formular pe întregul site, însă va injecta text în formularele care nu au toate câmpurile vizate în fișierul functions.php.

Pentru o nouă soluție sugerată:

Setarea atributului "autocomplete" al input-ului sau textarea-ului la o variabilă aleatorie care nu este o valoare standard pare să funcționeze în decembrie 2019 pentru Chrome, nu sunt sigur de ce opțiunea nativă CF7 pentru dezactivarea autocomplete-ului nu a fost actualizată.

Puteți defini acest atribut cu o simplă linie de jQuery, cum ar fi:

$("input.wpcf7-form-control, textarea.wpcf7-form-control").attr("autocomplete", "negative");

Aceasta vizualizează clasa implicită pentru câmpurile CF7.

Editare: am uitat să menționez, acest lucru necesită cunoștințe despre locul unde să adăugați scripturi JS personalizate, majoritatea temelor premium acceptă o secțiune JS personalizată sau pur și simplu adăugați linia în fișierul JS principal al temei copil.

10 dec. 2019 05:12:05