Détecter si un champs de formulaire est pré-rempli par le navigateur
Bonjour,
J'utilise un script pour afficher le label d'un champs de formulaire (input ou textarea) à l'intérieur de ce champs et le masquer au focus (comme un placeholder HTML5), dont voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| var $selector = $('label.input-wrapper input, textarea');
var hide = function($el) {
$el.prev('span').addClass('hidden');
};
var show = function($el) {
$el.prev('span').removeClass('hidden');
};
$selector.focusin(function() {
hide($(this));
});
$selector.focusout(function() {
show($(this));
});
$selector.each(function(i, el) {
console.log(el);
console.log(el.value);
if (el.value != "") {
hide($(el));
}
}); |
Le script fonctionne sans problème pour afficher/masquer le label, mais j'ai un souci en essayant de détecter si des champs de login sont pré-remplis par le navigateur (code de la dernière fonction) : Firebug affiche bien la valeur, mais mon code affiche toujours une valeur vide.
La fonction d'itération fonctionne bien, j'ai les informations sur les éléments, et indiquer "el.value = 'test';" a l'effet escompté et rend cette valeur accessible par la suite, mais tant que c'est la valeur pré-remplie par le navigateur, elle est vide.
J'ai testé sous Chrome et Firefox, même problème, du coup je me demande si ce n'est pas une fonctionnalité voulue des navigateurs, peut-être pour éviter les extensions keyloggers ?
Merci de votre aide.