Ne présentant pas d'espace réservé pour input type=“champ” date
Iam de faire une application phonegap, quand iam essaie type="date"
champ de saisie comme illustré ci-dessous, il montre sélecteur de date dans l'iPhone que j'ai attendu, mais il ne montre pas l'espace réservé j'ai donné. J'ai trouvé le même problème ici, dans l'affirmative ,mais aucune solution n'importe où, j'espère que quelqu'un pourra m'aider. Merci.
<input placeholder="Date" class="textbox-n" type="date" id="date">
- stackoverflow.com/a/23683687/1783439 a fonctionné pour moi
- Double Possible de espace réservé pour la saisie de type date html5
Vous devez vous connecter pour publier un commentaire.
Il peut ne pas être approprié... mais il m'a aidé à la dernière.
Si vous utilisez le mvp de la méthode, mais ajouter de l'événement onblur de revenir à un champ de texte de sorte que le texte s'affiche de nouveau lorsque le champ perd le focus. Il fait juste de la bidouille un peu plus agréable.
Espère que cette aide.
J'ai fini à l'aide de la suite.
Concernant Firefox commentaire(s): Généralement, Firefox n'affiche aucun texte de l'espace réservé pour les entrées de type date.
Mais comme c'est un Cordova/PhoneGap cette question devrait être d'aucun intérêt (Sauf si vous souhaitez vous développer à l'encontre de FirefoxOS).
CSS:
HTML:
J'ai utilisé dans mon css:
et mettre somenthing comme ça en javascript:
ça marche pour moi, pour les appareils mobiles (Ios8 et android). Mais j'ai utilisé jquery masquesaisie (inputmask) pour ordinateur de bureau avec entrée type de texte. Cette solution c'est une belle façon, si votre code s'exécute sur ie8.
color: #aaa
pour un espace réservé à l'apparence sur iOS.color: lightgray
est tout simplement trop de lumière.$("#myel").on( "input" , function(){ $(this).toggleClass( "full" , $(this).val().length > 0 ); });
À compter d'aujourd'hui (2016), j'ai utilisé avec succès ces 2 extraits (en plus ils fonctionnent bien avec les Bootstrap4).
Données d'entrée sur la gauche, l'espace réservé sur la gauche
Espace réservé disparaissent lorsque vous cliquez sur
Selon le standard HTML:
J'ai utilisé ce pentecôte jQuery:
http://jsfiddle.net/daviderussoabram/65w1qhLz/
Ça fonctionne pour moi:
:after
pseudo élément disparaissent lorsqu'une date est sélectionnée. Donc pas besoin de supprimer l'espace réservéonfocus="(this.placeholder='')"
à supprimer l'espace réservé une fois que la date est sélectionnée.Basé sur deadproxor et Alessio réponses, je voudrais essayer en utilisant uniquement CSS:
Et si vous avez besoin pour faire de l'espace réservé invisible après avoir écrit quelque chose dans l'entrée, on pourrait essayer d'utiliser l' :valide et non valide sélecteurs, si votre entrée est requise.
MODIFIER
Voici le code si vous utilisez dans votre entrée:
CSS:
HTML:
Trouvé une meilleure façon de résoudre votre problème.
Je pense que cela va vous aider. lorsque concentré, la boîte de changement de type de texte de sorte qu'il montrera à votre espace réservé. lorsque porté dans, son type de modifications en date de l'affichage du calendrier sera affiché.
Résoudre le problème dans le courant de la réponse correcte "en cliquant sur le champ affiche le clavier à l'écran au lieu de la datepicker":
Le problème est causé par le Navigateur se comporter selon le type d'entrée lorsque vous cliquez (=texte). Par conséquent, il est nécessaire d'arrêter de se concentrer sur l'élément d'entrée (flou), puis redémarrez l'accent par programme sur l'élément d'entrée qui a été défini comme type= "date" par JS dans la première étape. Le clavier affiche dans phonenumber-mode.
M'a pris du temps de trouver celui-ci, laissez-les
type="text"
, et ajouteronfocus="(this.type='date')"
, tel qu'il est indiqué ci-dessus.J'aime bien le onBlur idée mentionnée ci-dessus
<input placeholder="Date" class="textbox-n" type="text" onfocus="(this.type='date')" onblur="(this.type='text')" id="date">
Espère que cela aide quelqu'un qui n'a pas rassembler assez ce qui se passe au-dessus de
Pour résumer la date d'entrées problème:
La solution que j'ai trouvé pour répondre à ces exigences est d'utiliser l'habituel truc du style natif éléments de formulaire : s'assurer que l'élément est affiché, mais pas visible, et affichage prévu son style au travers de son étiquette associée. Généralement, l'étiquette s'affiche comme l'entrée (y compris un espace réservé), mais sur elle.
Donc, un code HTML comme:
Pourrait porter le titre:
De tout événement (cliquez sur, focus) sur une étiquette associée pourra être répercuté sur le champ lui-même, et ainsi de déclencher la date d'entrée de l'INTERFACE utilisateur.
Si vous voulez tester cette solution en live, vous pouvez exécuter cette version Angulaire à partir de votre tablette ou mobile.
DONC ce que j'ai décidé de faire enfin est ici et sa fonctionne très bien sur tous les navigateurs, y compris les iPhones et Androids.
JS:
CSS:
HTML:
Date
Je travaille avec ionicframework et fournies par la solution de @Mumthezir est presque parfait. Dans le cas où si quelqu'un aurait le même problème que moi(après le changement, l'entrée est toujours concentré et lors du défilement, de valeur, simplement disparaît) j'ai Donc ajouté onchange à faire d'entrée.blur()
Vous pouvez
comme ça...
JS:
HTML:
Angulaires point de vue, j'ai réussi à mettre un espace réservé dans l'entrée type d'élément de date.
Tout d'abord, je définis le code css suivant:
La raison pour laquelle cela est nécessaire, c'est que si css3 contenu a une couleur différente que la normale de l'espace réservé, j'ai donc dû utiliser une commune.
Ensuite dans le modèle utilisé un viewchild la date de naissance de l'attribut, pour être en mesure d'accéder à cette entrée du composant. Et défini angulaire de l'expression sur l'espace réservé à l'attribut, qui décidera si nous montrons l'espace réservé ou non. C'est l'inconvénient majeur de la solution, c'est que vous avez à gérer la visibilité de l'espace réservé.
Trouvé une meilleure façon de gérer l'utilisateur de base de la compréhension avec la souris et l'ouverture datepicker sur cliquez sur :
<input type="text" onfocus="(this.type='date')" onmouseover="(this.type = 'date')" onblur="(this.value ? this.type = 'date' : this.type = 'text')" id="date_start" placeholder="Date">
Également masquer webkit flèche et de le rendre 100% de largeur pour couvrir les cliquez :
essayer ma solution. J'utilise 'required' attribut de savoir si l'entrée est rempli et si je pas afficher le texte à partir de l'attribut 'placeholder'
J'ai pris jbarlow idée, mais j'ai ajouté un si dans le onblur fonction de sorte que les champs seulement changer son type si la valeur est vide
Expansion sur @mvp de la solution avec javascript discret à l'esprit, voici l'approche:
HTML:
Javascript:
Je pense que tout ce que vous avez à faire est de changer le modèle de dire que le champ date est nullable et puis mettre [Obligatoire] si c'est nécessaire. Si vous faites cela, l'espace réservé de texte ne s'affiche.
Hé oui, j'ai rencontré le même problème la nuit dernière et a trouvé une combinaison de l'ensemble de votre réponse et de certains mousseux de la magie sont en train de faire un travail de qualité:
Le code HTML:
Le CSS:
Le jQuery:
Explication:
Alors, qu'est-ce qui se passe ici, tout d'abord dans le HTML, c'est assez simple juste faire une base HTML5-date d'entrée et de définir un espace réservé.
Prochain arrêt: CSS, nous nous donnons :avant-pseudo-élément de faux notre espace réservé, il faut juste l'espace réservé de l'attribut de l'entrée elle-même. J'ai fait ce disponible uniquement vers le bas à partir d'une fenêtre d'affichage de la largeur de 1024px - pourquoi im va le raconter plus tard.
Et maintenant, le jQuery, après refactoring une couple de fois je suis venu avec ce morceau de code qui va vérifier à chaque changement si il y a une valeur définie ou pas, si elle n'est pas elle (re-)ajout de la classe, vice-versa.
CONNAISSENT DES PROBLÈMES D':
espère que ça aide!
à plus!
HTML:
Version révisée du code de mumthezir
Si vous n'êtes intéressé que par le mobile:
HTML:
JavaScript:
Ici est une autre hack utilisez pas de js et toujours à l'aide de css
content
. Notez que comme:after
n'est pas prise en charge sur certains navigateur pour les entrées, nous avons besoin de sélectionner l'entrée d'une autre manière, de même pourcontent attr('')
CSS:
HTML:
Cela fonctionne pour moi en utilisant ce que l'élément d'entrée:
Cette CSS montre une permanente de l'espace réservé. La valeur sélectionnée est affiché après l'espace réservé.
J'utilise cette solution pour un WordPress formulaire de contact-form-7 plugin.
Aucune des solutions ont été fonctionne correctement pour moi sur Chrome sous iOS 12 et la plupart d'entre eux ne sont pas adaptés pour faire face à de possibles plusieurs date d'entrées sur une page. J'ai fait la suivante, ce qui en fait crée une fausse étiquette sur la date d'entrée et le supprime sur le robinet. Je suis également en retrait de la fausse étiquette de la fenêtre d'affichage si la largeur est au-delà de 992px.
JS:
CSS:
Extension de Mumthezir la version qui fonctionne le mieux sur iOS, basé sur Mathijs Segers commentaire:
(Utilise certains AngularJS mais j'espère que vous obtenez l'idée.)
Parce que c'est le tout enveloppé dans un
label
, en cliquant sur lespan
se concentre automatiquement lainput
.CSS:
Vous pouvez utiliser l'attribut "value", par exemple: