2
votes

Comment savoir si le formulaire Chrome ne contient pas de champs de carte de crédit?

Chrome fait preuve de trop de zèle et pense que mon formulaire HTML contient des informations de carte de crédit et propose donc de le remplir avec des informations de carte de crédit.

Y a-t-il des attributs que je peux utiliser pour indiquer à Chrome qu'il n'y a aucune information de être rempli, dans ce formulaire?

Les noms de champs dans lesquels il essaie de remplir les informations de carte de crédit sont:

  • reg_id (il met un numéro CC ici)
  • Emergency_first_name (il met le prénom ici)
  • urgence_last_name (il met le nom de famille ici)

Je ne veux pas avoir à désactiver la saisie semi-automatique si je ne suis pas obligé de le faire.

Ce qui est frustrant ici, c'est l'attitude de Chrome "sait mieux", où il ignore toute valeur à autocomplete , y compris off:

<input autocomplete="off" value="" size="10" maxlength="10" id="id_reg_id" name="reg_id" type="text">

Modifier: mise à jour des réponses suivantes.


0 commentaires

3 Réponses :


0
votes

essayez

type d'entrée = "personnalisé"

ou utilisez une zone de texte avec une seule ligne et redimensionner


0 commentaires

0
votes

Votre navigateur ne doit pas se souvenir de votre numéro de carte de crédit par défaut - je ne peux que supposer que vous avez entré dans un champ contenant un autocomplete valeur dessus. Vous pouvez toujours forcer votre navigateur à oublier ces informations en appuyant simplement sur Supprimer lors de la sélection (avec les touches fléchées) dans la liste déroulante des options de pré-remplissage.

Comme pour l'empêcher d'apparaître dans certains champs, cela dépend des informations que vous voulez que chaque champ contienne, mais il existe un large tableau de valeurs autocomplete que vous pouvez utiliser. Vous pouvez utiliser le numéro pour les identifiants, et les deux autres champs que vous avez mentionnés contiennent en fait des valeurs spécialisées autocomplete , given-name et family -name :

<form>
  <input name="reg_id" autocomplete="number" />
  <input name="emergency_first_name" autocomplete="given-name" />
  <input name="emergency_last_name" autocomplete="family-name" />
</form>

Si number ne le coupe tout simplement pas, vous pouvez également utiliser une expression régulière JavaScript pour restreindre davantage la saisie:

const regex = new RegExp("^[a-zA-Z]+$");
const form = document.getElementsByTagName('form')[0];
const reg_id = document.getElementsByTagName('input')[0];

form.addEventListener('click', function(e) {
  e.preventDefault();
  if (regex.test(reg_id)) {
    this.submit();
  }
});
<input name="reg_id" autocomplete="number" />
<input name="emergency_first_name" autocomplete="given-name" />
<input name="emergency_last_name" autocomplete="family-name" />


1 commentaires

On dirait que Chrome sait mieux et ignore simplement toute valeur à remplir automatiquement. Je l'ai même mis à off! ! Je vais mettre à jour la question avec ceci.



0
votes

Je me cogne la tête contre le bureau depuis un moment à cause de ça. Nous avons des formulaires pour entrer les données de test des instruments, et un champ appelé "Numéro de carte de test", ainsi que "Kit (date de péremption)". Devinez à quoi Chrome pense que ces champs servent?

Inutile de dire que je suis presque sûr que les utilisateurs seraient TRÈS contrariés de voir chrome nous essayer de retirer leur CC informations lors de la saisie des données de recherche clinique.

Même autocomplete = "new-password" et autocomplete = "nope" ne parviennent à rien bien, ici.

J'ai essayé de charger le champ sans étiquette et de l'ajouter dynamiquement en javascript. Pas de dé. Utilisé des entités html au lieu de caractères. Nan.

Eh bien, après quelques heures à parcourir le Web sans aucune solution en vue, j'en ai trouvé une: insérez-en quelques-unes au hasard - dans chaque mot des étiquettes incriminées. (Pour moi, avec le numéro de la carte de test, il devait être à la fois dans la carte et dans le numéro. Le test était bien laissé seul).

On pouvait facilement écrire une extension / fonction utilitaire javascript pour diviser le html d'une infraction étiquette et giflez cette étendue invisible au milieu (et une pour la supprimer en cas de besoin d'utiliser la valeur d'étiquette).

Quelque chose comme ça (en utilisant jQuery et les anciennes normes js parce que nous prenons en charge les anciens navigateurs, sans vérification si l'étiquette est manquante ou vide, alors adaptez-vous en conséquence. En fait, je suis sûr qu'une expression régulière ou une autre fantaisie des trucs pourraient être utilisés, mais je n'ai pas le temps de jouer avec ça atm):

$("your_input_selector").breakAutofill();

Que vous pouvez ensuite appeler sur document prêt:

XXX

J'espère que cela aide quelqu'un.


0 commentaires