J'ai certaines formes qui ont des étiquettes en ligne. J'ai javascript (jQuery) qui détecte quand le focus a changé ou quand un utilisateur entre du texte qui change la classe de sorte que l'étiquette inline disparaît et ne bloque pas la vue de l'utilisateur de leur texte entré.Détecter la saisie semi-automatique
Le problème que je rencontre se produit lorsque le navigateur remplit automatiquement le formulaire. Aucune des conditions ci-dessous n'est déclenchée, donc je ne peux pas effacer l'étiquette inline. Comment puis-je détecter le fait que le texte a été saisi via la saisie semi-automatique afin que je puisse effacer les étiquettes?
Les js que je utilise (de http://www.zurb.com/playground/inline-form-labels):
$(document).ready(
function()
{
$("label.inlined + .input-text").each(
function(type)
{
$(this).focus(function()
{
$(this).prev("label.inlined").addClass("focus");
});
$(this).keypress(
function()
{
$(this).prev("label.inlined").addClass("has-text")
.removeClass("focus");
});
$(this).blur(
function()
{
if($(this).val() == "")
{
$(this).prev("label.inlined").removeClass("has-text")
.removeClass("focus");
}
});
});
});
Merci!
Bryan
Sons similaires à http://stackoverflow.com/questions/343192/why-does-the-javascript-change-event-not-fire-if-autocomplete-is-on. – kloffy
Avez-vous essayé d'ajouter un gestionnaire pour "coller" faire la même chose que pour "keypress"? – Pointy
En allant sur le lien de kloffy, il a mentionné l'événement jQuery 'change' (également mentionné par zincorp). Cela n'a pas semblé fonctionner pour moi. 'paste' ne fonctionnait pas non plus. –