HTML5 a introduit l' placeholder
attribut sur les input
éléments, qui permet d'afficher un texte par défaut grisé.
Malheureusement, Internet Explorer, y compris IE 9, ne le prend pas en charge.
Il existe déjà des scripts de simulateur d'espace réservé. Ils fonctionnent généralement en plaçant le texte par défaut dans le champ de saisie, en lui donnant une couleur grise et en le supprimant à nouveau dès que vous ciblez le champ de saisie.
L'inconvénient de cette approche est que le texte de l'espace réservé se trouve dans le champ de saisie. Donc:
- les scripts ne peuvent pas facilement vérifier si un champ de saisie est vide
- le traitement côté serveur doit vérifier la valeur par défaut, afin de ne pas insérer l'espace réservé dans la base de données.
Je voudrais avoir une solution, où le texte d'espace réservé n'est pas dans l'entrée elle-même.
Le meilleur de mon expérience est https://github.com/mathiasbynens/jquery-placeholder (recommandé par html5please.com ). http://afarkas.github.com/webshim/demos/index.html a également une bonne solution parmi sa bibliothèque beaucoup plus étendue de polyfills.
la source
Avec une implémentation jQuery, vous pouvez FACILEMENT supprimer les valeurs par défaut lorsqu'il est temps de soumettre. Voici un exemple:
Je sais que vous recherchez une superposition, mais vous préférerez peut-être la facilité de cet itinéraire (sachant maintenant ce que j'ai écrit ci-dessus). Si c'est le cas, j'ai écrit ceci pour mes propres projets et cela fonctionne vraiment bien (nécessite jQuery) et ne prend que quelques minutes à mettre en œuvre pour l'ensemble de votre site. Il offre du texte gris au début, gris clair lors de la mise au point et noir lors de la saisie. Il propose également le texte d'espace réservé chaque fois que le champ de saisie est vide.
Configurez d'abord votre formulaire et incluez vos attributs d'espace réservé sur les balises d'entrée.
Copiez simplement ce code et enregistrez-le sous placeholder.js.
À utiliser sur une seule entrée
C'est ainsi que je vous recommande de l'implémenter sur tous les champs de saisie de votre site lorsque le navigateur ne prend pas en charge les attributs d'espace réservé HTML5:
la source
Après avoir essayé quelques suggestions et vu des problèmes dans IE, voici celui qui fonctionne:
https://github.com/parndt/jquery-html5-placeholder-shim/
Ce que j'ai aimé - vous incluez simplement le fichier js. Pas besoin de l'initier ou quoi que ce soit.
la source
La solution suivante se lie aux éléments de texte d'entrée avec l'attribut d'espace réservé. Il émule un comportement d'espace réservé uniquement pour IE et efface le champ de valeur de l'entrée lors de la soumission s'il n'est pas modifié.
Ajoutez ce script et IE semblerait prendre en charge les espaces réservés HTML5.
la source
Je vous propose une fonction simple:
Et pour l'utiliser, appelez-le de cette façon:
la source
J'ai trouvé une solution assez simple en utilisant cette méthode:
http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
c'est un hack jquery, et ça a parfaitement fonctionné sur mes projets
la source
Vous pouvez utiliser :
la source
Simple comme ça:
la source
J'ai écrit un plugin jquery pour résoudre ce problème .. c'est gratuit ..
Répertoire JQuery:
http://plugins.jquery.com/project/kegles-jquery-placeholder
Site: www.kegles.com.br/jquery-placeholder/
la source
J'ai mis au point un script JQuery d'espace réservé simple qui permet une couleur personnalisée et utilise un comportement différent pour effacer les entrées lorsque le focus est mis. Il remplace l'espace réservé par défaut dans Firefox et Chrome et ajoute la prise en charge d'IE8.
la source
Placeholdr est un espace réservé jQuery polyfill super léger que j'ai écrit. C'est moins de 1 Ko minifié.
Je me suis assuré que cette bibliothèque répond à vos deux préoccupations:
Placeholdr étend la fonction jQuery $ .fn.val () pour éviter les valeurs de retour inattendues lorsque du texte est présent dans les champs d'entrée à la suite de Placeholdr. Donc, si vous vous en tenez à l'API jQuery pour accéder aux valeurs de vos champs, vous n'aurez rien à changer.
Placeholdr écoute les soumissions de formulaire et supprime le texte de l'espace réservé des champs afin que le serveur voie simplement une valeur vide.
Encore une fois, mon objectif avec Placeholdr est de fournir une solution simple et instantanée au problème des espaces réservés. Faites-moi savoir sur Github s'il y a autre chose qui vous intéresserait d'avoir le support de Placeholdr.
la source
Pour insérer le plugin et vérifier que le ie est parfaitement travailléjquery.placeholder.js
la source
Voici une fonction javascript pure (pas besoin de jquery) qui créera des espaces réservés pour IE 8 et ci-dessous et qui fonctionne également pour les mots de passe. Il lit l'attribut d'espace réservé HTML5 et crée un élément span derrière l'élément de formulaire et rend l'arrière-plan de l'élément de formulaire transparent:
la source
REMARQUE: l'auteur de ce polyfill affirme qu'il "fonctionne dans à peu près tous les navigateurs que vous pouvez imaginer" mais selon les commentaires ce n'est pas vrai pour IE11, cependant IE11 a un support natif, comme le font la plupart des navigateurs modernes
Placeholders.js est le meilleur polyfill d'espace réservé que j'ai vu, est léger, ne dépend pas de JQuery, couvre d'autres navigateurs plus anciens (pas seulement IE) et propose des options pour les espaces réservés de masquage à l'entrée et d'exécution unique.
la source
j'utilise jquery.placeholderlabels . Il est basé sur ceci et peut être démo ici .
fonctionne dans ie7, ie8, ie9.
Le comportement imite le comportement actuel de Firefox et Chrome - où le texte «espace réservé» reste visible sur le focus et ne disparaît qu'une fois que quelque chose est tapé dans le champ.
la source
J'ai créé mon propre plugin jQuery après avoir été frustré par le fait que les shims existants masqueraient l'espace réservé sur le focus, ce qui crée une expérience utilisateur inférieure et ne correspond pas non plus à la façon dont Firefox, Chrome et Safari le gèrent. C'est particulièrement le cas si vous souhaitez qu'une entrée soit focalisée lors du premier chargement d'une page ou d'une fenêtre contextuelle, tout en affichant l'espace réservé jusqu'à ce que le texte soit saisi.
https://github.com/nspady/jquery-placeholder-labels/
la source