web-dev-qa-db-fra.com

Désactiver la saisie semi-automatique dans chrome 66

Existe-t-il un moyen de désactiver la saisie semi-automatique sur un champ de texte dans chrome 66? J'ai essayé un certain nombre d'options comme:

  1. autocomplete = "off"
  2. autocomplete = "false"
  3. autocomplete = "désactivé"
  4. autocomplete = "quelque chose de nouveau" etc.

Est-ce que quelqu'un peut m'aider avec ça?

En outre, une autre chose fait chrome active automatiquement la saisie semi-automatique pour un nom d'utilisateur s'il a un champ de type de mot de passe en dessous?

11
Aman Srivastava

J'ai obtenu la fonctionnalité de complétion automatique à désactiver dans chrome en donnant

<form autocomplete="off">

et

var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
element.autocomplete = isChrome ? 'disabled' :  'off';

où isGoogleChrome est une fonction pour savoir si le navigateur est chrome écrit à l'aide de ce post.

JavaScript: comment savoir si le navigateur de l'utilisateur est Chrome?

1
Samuel J Mathew

De nombreux navigateurs refusent d'adhérer à ce que vous avez mentionné - la meilleure façon est de faire un élément readonly puis, au survol/clic/flou/focus, de supprimer readonly.

Vous pouvez donc lui donner une classe telle que disable_autocomplete et également rendre le champ de saisie en lecture seule.

Ensuite, lorsque le champ est survolé, focalisé ou cliqué, vous pouvez le supprimer en lecture seule. Si vous le souhaitez, ajoutez-le à nouveau.

1
Shiv

J'ai utilisé ce code et cela fonctionne pour moi. J'espère que cela vous sera également utile. :) Entrez votre type avec readonly puis le code de mention ci-dessous.

<input readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    this.blur();    this.focus();  }" />
1
Durgesh Dangi
$(document).ready(function(){ 
     $("input").val("");
});

Donc, Chrome définit simplement la valeur de l'élément lors de leur remplissage automatique. Essayez simplement cela, sinon vous pouvez essayer de définir un certain intervalle, qui vérifiera la valeur dans le code HTML, car Chrome ne pas mettre de nouvelle valeur au code HTML, le met juste en mémoire pour lui-même.

J'ai trouvé quelque chose :

 <input autocomplete="off" onfocus="this.setAttribute('autocomplete', 'I don\' t want this Google');" />

Bonjour à tous

0
Jules Liegeois
function annihilateChromesAutocomplete(){
        var clearAutocompleteInterval = setInterval(function(){
                var peskyAutocompletedInputs = document.querySelectorAll("input:-internal-autofill-selected");
                for(var i = (peskyAutocompletedInputs.length - 1); i > -1; i--){
                        peskyAutocompletedInputs[i].value = peskyAutocompletedInputs[i].defaultValue;
                }
        }, 1);
        setTimeout(function(){
                clearInterval(clearAutocompleteInterval);
        }, 2000);
}
0
Aaron Plocharczyk

Utilisez ceci

$(document).ready(function(){ $("input").attr("autocomplete", "off"); });

Et si le remplissage automatique est activé dans chrome vous pouvez suivre ces étapes pour le désactiver:

Désactiver la saisie automatique dans Chrome

  1. Cliquez sur l'icône Chrome du menu. (Trois lignes en haut à droite de votre écran.)
  2. Cliquez sur Paramètres.
  3. En bas de la page, cliquez sur "Afficher les paramètres avancés"
  4. Dans la section Mots de passe et formulaires, décochez "Activer le remplissage automatique pour remplir les formulaires Web en un seul clic"
0
Nit