Astuce JavaScript: désactiver l'historique de saisie d'un (ou plusieurs) champ(s) de texte.
Par Ced le 6 mai 2009, 00:00 - Astuces diverses et variées - Lien permanent
Un beau jour, vous avez décidé d'implémenter votre propre moteur de recherche avec suggestions de mots-clés grâce à de l'AJAX (à la manière d'un Google Suggest). Par défaut, lorsque vous soumettez plusieurs recherches, un historique de saisie s'affiche par défaut en-dessous du champ de texte. Comme vous pouvez vous en douter, ceci peut vite s'avérer assez gênant vu que l'historique de saisie risque de masquer votre liste de suggestions de mots-clés. Voici une astuce pour éviter cela.
L'astuce consiste à utiliser un petit bout de code JavaScript. Voici ce code:
window.onload = function() {
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].type == 'text') {
inputs[i].setAttribute('autocomplete', 'off');
};
};
};
On va créer une fonction qui va être exécutée au chargement de la fenêtre (window.onload). À l'intérieur de cette fonction, on récupère tous les champs de texte de la page (en HTML, ce sont des balises "input" de type "text") dans une variable. On boucle sur tous les éléments "input", et si l'élément "input" est de type "text", on fixe l'attribut "autocomplete" à la valeur "off". Ainsi, l'historique de saisie disparaîtra du (ou des) champ(s) de texte :-).
Commentaires
Merci pour ce bout de code, c'est très pratique.
Pourquoi ne pas simplement ajouter l'attribut "autocomplete" sur la balise <input> ?
<input type="text" autocomplete="off"/> fonctionne très bien...