Bonjour !
J'ai parcouru plusieurs forums dans l'espoir de résoudre un problème qui commence à me les ... 'fin voilà, quoi.
Le problème en question est l'autocomplete des inputs sur Chrome. (J'ai pas eu le cœur de vérifier sur les autres navigateurs, j'suis pas maso non plus ...)
Alors, oui, évidemment, j'ai déjà, sur chaque input, ajouté l'attribut autocomplete="off". Et autant en local, ça marche impec' (sur Chrome, en plus !), autant dés que je l'upload, bah nan, il veut pas. Et le pire c'est qu'il me balance l'autocomplete dans des champs qui n'ont rien à voir.
J'en ai remis une couche en jQuery, mais non, pas mieux. Comme dirait l'autre ... je suis très mal à l'aise.
Help, please ?
Ahahahahah, tu vas rire. :')
J'viens d'avoir une idée de grand malade ! Dans la mesure où l'inscription et la connexion sont gérées en Ajax via jQuery, je n'ai pas vraiment besoin d'avoir un formulaire à proprement parler, n'est ce pas ? (Question rhétorique évidemment.)
Du coup j'ai enlevé les balises <form> ... et du coup, ce gros c*n de Google Chrome ne voit rien autofiller !
MOUHAHAHAHAHAHAHA !
Merci de ton aide cela dit ! :)
J'avais déjà inspecté le code pour vérifier oui, et je viens de relancer Chrome, sans succès. :/
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
</head>
<body>
<form action="" method="POST" autocomplete="off">
<input type="text" name="login" autocomplete="off" />
</form>
</body>
</html>
Fonctionne chez moi, et toi ?
EDIT: Ralf, dégage vall ! xD
Nope, pas mieux. =/
Edit 1 : J'ai supprimé le mot de passe enregistré, et forcément, l'autocomplete a disparu. Je me suis reconnecté sur mon site, en acceptant la sauvegarde du mot de passe, et après avoir actualisé, il recommence. Il est pénible.
Question subsidiaire : si je donne des noms complètement sans rapport à mes champs, est-ce que ça peut jouer ?
Edit 2 : Je confirme que ça ne change rien. ><
J'ai carrément viré les attributs name des mes inputs, dans la mesure où je fais inscription et connexion via jQuery / Ajax. Ça ne change rien. Ça me rend dingue. :')
Tu peux essayer d'ajouter un attribut value="", pour la forcer a etre blank, en plus des autocomplete="off"
@Glaived: Game's on
Pour l'autocomplete :
$("input[type='text'],input[type='password']").attr({autocomplete:"off"});
Tu veux le traitement du formulaire aussi ?
Non, je ne pense pas que ca change.
Plutot que d'utiliser jQuery pour ajouter l'attribut automplete a off, as-tu essayer de faire $.val('') ?
$( document ).ready(function(){
$("input[type='text'],input[type='password']").val("");
});
Je vais tenter autre chose : un ajout des champs au chargement de la page, via jQuery. (Ouais, j'ai que ça à faire !)
En supposant que Chrome soit un peu lent pour faire son autofill, et donc que le $.val('') de jQuery soit plus rapide, tu peux ajouter un delay a ton jQuery pour virer les valeurs de champs après que Chrome est fait son autofill:
$( document ).ready(function(){
setTimeout(function(e){
$("input[type='text'],input[type='password']").val("");
}, 1500);
});
En l'occurence il est de 1,5 sec, ce qui est bien trop long on est d'accord, mais au moins ca te dira si sur le principe ca peut marcher ou pas (et je ne vois pas du tout pourquoi ca ne marcherait pas, la ...). Essaye ensuite des trucs un peu plus courts (genre 200 ms).
Toi t'es un p*tin de génie !
Bon ça marche qu'à moitié, mais ça marche. En l'occurrence, il me vide bien les champs, mais il leur laisse le style attribué par l'autofill de Chrome.
J'ai essayé mais il ne le prend pas en compte. Ce qui est logique, d'ailleurs ! S'il trouve le moyen d'écraser mon css normal, il écrase aussi celui que je peux lui attribuer ! ^^
De toutes façons, il réagit pas avant 1000-1200ms.
J'en reviens à mon idée précédente, une création du formulaire en jQuery. :)
J'ai peur qu'un simple chargement ne suffise pas, mais je vais commencer ça par ça, tu as raison ! :)
Au pire, pour ca tu peux attendre 1,5 secondes avant de lancer ton chargement pour éviter l'autofill (avec un petit loader pour faire patienter ...).
Ça se tente ! J'sais pas toi mais moi j'suis là jusqu'à 6h, donc je te tiens au courant o/
Ca, ça reste à voir ! Outre-Atlantique, oui mais où ? :) Il est quelle heure chez toi là ?
Bon, ca marche ton truc ? Ca sert a rien de faire nuit blanche si t'avance pas, de toute facon :p
Pas encore, mais j'ai pas eu le temps de tout faire ...
Je fais pas nuit blanche, je suis au boulot ! :D
Meme avec un setTimeout ? ... J'ai peur d'arriver au bout de mes solutions potentielles ... (qui ne fonctionnent pas de toute facon je te l'accorde ...).
:'D
J'aime pas la solution du setTimeout (sans vouloir t'offusquer mon ami), ça rend vraiment pas top.
Par contre, j'ai avancé sur mon idée de créer les champs en jQuery, je leur ai donné un id type "id"+timestamp, et ça fonctionne niquel. :)
Qu'est ce qui te choquait dans le fait que je sois en métropole ?
Si ton truc en jQuery ne fonctionne pas, et si tu veux vraiment enfler chrome, j'ai peut-etre une solution tordue, pour toi:
1- Mets tes inputs en hidden.
2- A leur place, pour l'utilisateur, mets des div en contenteditable="true", que tu peux customiser comme tu veux pour qu'elle soient visuellement identiques a tes input originaux.
3- Dans ton css, tu peux meme mettre -webkit-text-security: disc; pour que ca mime l'input du password.
4- Au moment de la soumission du formulaire, si c'est de l'ajax tu t'emmerde pas, tu passes le contenu de tes div directement avec un $.text() (auquel cas pas besoin de tes inputs hidden, en fait), si c'est par rechargement de la page que tu envoies le formulaire, alors il faut simplement passer le contenu de tes div dans tes inputs avants de valider la soumission ...
Et alors la, si chrome te fait de l'autofill ... vraiment je ne saurai plus quoi dire ^^
C'est tes horaires qui me font compatir ... il est 3h du mat en France :( ...
enfin je dis ca mais en meme temps peut-etre que ca te plait, toi ... tu bosses dans quoi ?
Effectivement, solution totalement faisable, que je fasse mon envoi en Ajax ou envoi de formulaire ... Quand je pense que t'as cherché ça pour rien ... :D
Je suis réceptionniste de nuit, et non, je n'aime vraiment VRAIMENT pas ça. Mais ça paye les factures, et comme tu peux le constater, ça me laisse suffisamment de temps pour bosser sur ce qui m'intéresse : coder. :)
OK, GG, j'avais pas du tout pensé a ca ! C'était fun de chercher ^^
Bon courage pour le reste de ta nuit ... et bonne continuation pour ton code ;)
C'est surtout fun d'avoir trouvé ... :p
Merci à toi pour ton aide, mine de rien, ça m'a aidé de ne pas me sentir seul ! :)
Bon courage à toi pour ... ce que tu veux, et bonne continuation pour ton code aussi. :) Au plaisir de revenir te demander de l'aide et/ou de t'aider, on sait jamais ... J'suis moins mauvais que j'en ai l'air :p