Sous WebKit et Firefox, le texte d'un fichier input
's placeholder
reste dans les parages le focus
-Il ne disparaît que lorsque input.val
a quelque chose à offrir.
Existe-t-il un bon moyen de forcer IE10 à faire la même chose ?
Sous WebKit et Firefox, le texte d'un fichier input
's placeholder
reste dans les parages le focus
-Il ne disparaît que lorsque input.val
a quelque chose à offrir.
Existe-t-il un bon moyen de forcer IE10 à faire la même chose ?
En :-ms-input-placeholder pseudo-classe de la documentation de l Centre de développement d'Internet Explorer semble indiquer que cela fonctionne comme prévu.
Le texte de remplacement est affiché avec la mention sp ait le focus, c'est-à-dire qu'il soit possible de taper dans le champ. Lorsque le champ a le focus, le style normal du champ de saisie est rétabli et le texte de l'espace réservé est affiché avec le style spécifié. le texte de l'espace réservé disparaît.
Edita: Si je devais imiter ce comportement, je me tournerais vers les bibliothèques polyfill (qui définissent la valeur par défaut, font flotter un texte gris sur la zone de saisie, etc.) qui fonctionnent avec les anciennes versions d'IE. ) qui fonctionnent avec les anciennes versions d'IE. Elles devraient être modifiées, car elles sont probablement capables de détecter la capacité de l'espace réservé et de s'en remettre au navigateur. De plus, cela aurait une odeur de code de "détection de navigateur".
Mise à jour : Un "Question sur la disparition du texte de l'espace réservé dans IE a été posée lors d'une discussion sur Twitter #AskIE séance de questions le 19 juin 2014 et @IEDevChat a répondu "Nous avons un bogue actif pour ce comportement. La prochaine version fournira un correctif"
Malheureusement, l'utilisateur se retrouve face à un champ vide et clignotant, sans aucun indice lui permettant de savoir ce qu'on lui demande d'y mettre.
Ce n'est pas la bonne réponse, contrairement à la question : Existe-t-il un bon moyen de forcer IE10 à faire la même chose ? (maintenir le symbole visible lors de la mise au point)
@DeborahSpeece : "Malheureusement, l'utilisateur se retrouve face à un champ vide et clignotant, sans aucun indice lui permettant de savoir ce qu'on lui demande d'y mettre." Eh bien, votre champ devrait avoir un <label>
également. placeholder
ne remplace pas <label>
y <label>
doit indiquer ce qui est destiné à aller dans le champ.
Les développeurs de l'IE ont répondu lors de la AskIE session sur twitter IEDevChat qu'il s'agit d'une bogue connu dans la BugList d'IE qu'ils corrigeront dans une prochaine version.
Mise à jour:- Malheureusement, le comportement de l'espace réservé est toujours le même dans IE11, mais semble fonctionner dans les versions Edge/Spartan.
Il n'y a pas de bonne façon de faire en sorte que les espaces réservés restent au niveau du champ dans IE 10+, mais si vous essayez de remplacer les étiquettes par des espaces réservés, vous devriez jeter un coup d'œil à ceci.
http://mozmonkey.com/2014/02/css-only-placeholders-field-labels-i-e-float-labels/
Il s'agit d'un moyen de combiner les espaces réservés et les étiquettes pour améliorer l'expérience de l'utilisateur.
J'ai pensé partager la solution de contournement que j'ai utilisée pour résoudre ce problème, car il semble qu'il n'y ait toujours pas de solution pour IE11.
Dans mon exemple, IE11 a ajouté la valeur de mon espace réservé comme valeur réelle dans la zone de texte.
Voici ce que j'avais dans mon modèle de vue :
<textarea placeholder="Type your message">
</textarea>
Voici ce qui s'affiche sur le front-end dans IE11 :
<textarea placeholder="Type your message">
Type your message
</textarea>
Ainsi, lorsque l'utilisateur se concentrait sur le champ, son curseur se trouvait à la fin de la chaîne " message here" - étrange !
La solution que j'ai trouvée consiste à ajouter une classe initiale à l'élément lors de son chargement. Ensuite, un événement bind de base sur "focus" pour vérifier si la classe était présente - si elle est présente, il supprime val et supprime également la classe. Ainsi, dès que l'utilisateur se concentre sur le champ, la valeur est réinitialisée à une chaîne vide.
Voici l'événement bind (dans cet exemple particulier, il s'agissait d'une fenêtre modale chargée dynamiquement). - vous pouvez simplifier cela) :
$(document).on( "focus", '.textarea', function () {
if ($(this).hasClass('placeholder-val-present')) {
$(this).val("").removeClass('placeholder-val-present');
}
});
Cela fonctionne bien car lorsque l'utilisateur sort du champ par la tabulation, l'espace réservé est réajouté et cela fonctionne normalement dans IE11 et dans tous les autres navigateurs.
Je suis sûr que c'est un exemple de niche, mais il peut être utile à d'autres !
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
@JayBlanchard : Il y en a ? Qu'est-ce que c'est ? Je pense qu'il a essayé d'utiliser
<input type="text" placeholder="text" />
et l'espace réservé disparaît lors de la mise au point dans IE 10. Que lui suggérez-vous d'essayer ? Je ne pense pas qu'il y ait une option "ne pas cacher l'espace réservé" ou quelque chose comme ça.0 votes
@RocketHazmat J'ai répondu à sa question. Il a demandé s'il y avait une bonne façon de faire et j'ai répondu de façon appropriée. C'est tout aussi valable que votre réponse de ne pas utiliser IE10.
0 votes
@JayBlanchard : Ce n'était pas une réponse, je plaisantais. Je ne sais pas ce que vous attendiez de lui, parce que j'ai cherché sur Google et je n'ai pas trouvé beaucoup d'informations. Je suis curieux de savoir quelle est la bonne méthode que vous connaissez à ce sujet.
1 votes
Voici ce que j'ai trouvé sur Google : "Si vous prévisualisez localement un site qui utilise des fonctionnalités HTML5 et CSS3 (texte d'insertion, coins arrondis, etc.) dans IE10, en utilisant le serveur de développement EW ou IIS, vous pouvez constater que ces fonctionnalités ne s'affichent pas. Cela est dû au fait que le mode de navigation par défaut pour les sites intranet dans IE10 est le "mode de compatibilité". ew-resource.co.uk/ie10-be-prepared.aspx
0 votes
@RocketHazmat, ma réponse était aussi drôle que la vôtre. J'ai posté quelque chose qui peut aider.
0 votes
@JayBlanchard : Je ne pense pas que cela ait quoi que ce soit à voir avec le problème ici, car je suppose que l'espace réservé est un espace de liberté. es apparaissant, mais il est toujours bon de désactiver le "Mode de Compatibilité" d'IE, c'est terrible.
0 votes
@RocketHazmat il devra peut-être recourir à un polyfill ou à un plugin quelconque si la désactivation du mode de compatibilité ne fonctionne pas.
0 votes
@JayBlanchard : Désolé, je ne voulais pas être méchant :-)
0 votes
Pas d'inquiétude @RocketHazmat - tout va bien :-)
0 votes
En vérifiant Firefox maintenant, vous avez raison sur la façon dont il se comporte, mais je ne suis pas sûr de pouvoir le faire. convaincu que dans les versions antérieures, il se comportait de la même manière que vous dites qu'IE10 le fait. Je me souviens avoir été gêné par ce phénomène dans le passé. Peut-être que la spécification a changé assez récemment ? Pour ce que ça vaut, IE11 fait la même chose qu'IE10.
3 votes
Il convient de préciser que vous pourriez être mécontent de cette situation si vous utilisiez l'espace réservé en lieu et place d'une étiquette. Veuillez noter que la spécification HTML5 indique très clairement que cette utilisation n'est pas souhaitée -- voir 456bereastreet.com/archive/201204/
1 votes
@Spudley, je suis d'accord... les espaces réservés ne remplacent pas les étiquettes. Mais j'ai une partie de l'interface utilisateur qui bénéficierait du bon fonctionnement de l'espace réservé d'IE !
0 votes
Mais la vraie question est : existe-t-il un moyen de détruire Internet Explorer et toute sa famille, ses ancêtres et ses futurs ? J'ai commencé à coder pour le web en 1997, et cette merde existe toujours...