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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.