Comment faire <input type=“date”> prise en charge sur tous les navigateurs? Des alternatives?
Je travaille avec des éléments HTML5 et les attributs d'entrée seulement Google Chrome est compatible avec la date, les attributs de temps. J'ai essayé Modernizr mais je ne peux pas comprendre comment l'intégrer sur mon site(sur la façon de le code qu'il/qu'est-ce que la syntaxe/includes). Un fragment de code il sur la façon de travailler avec la date, l'heure des attributs pour tous les navigateurs.
- Ce type de contrôle utilisez-vous un Datepicker?? peut-être que JQuery UI serait parfait??
- Veuillez noter que si vous n'êtes pas déjà en s'appuyant sur jQueryUI pour quelque chose, y compris sa gigantesque poids juste pour caler une date d'entrée ne doit pas être une décision par défaut.
- Un exemple complet est fourni dans le html5doctor.com/...
Vous devez vous connecter pour publier un commentaire.
N'importe quel navigateur qui ne prend pas en charge le type d'entrée
date
par défaut pour le type standard, qui esttext
, de sorte que tous vous avez à faire est de vérifier le type propriété (pas l'attribut), si ce n'est pasdate
, la date d'entrée n'est pas supporté par le navigateur, et vous ajoutez votre propre datepicker:VIOLON
Vous pouvez bien sûr utiliser n'importe datepicker vous voulez, jQuery UI datepicker est probablement la plus couramment utilisée, mais elle ne ajouter un peu de javascript si vous n'êtes pas à l'aide de la bibliothèque d'INTERFACE utilisateur pour autre chose, mais il y a des centaines de rechange datepickers à choisir.
La
type
attribut ne change jamais, le navigateur ne fait que revenir à la valeur par défauttext
type de la propriété, de sorte que l'on doit vérifier la propriété.L'attribut peut encore être utilisé comme sélecteur, comme dans l'exemple ci-dessus.
$('input').prop('type') != 'date'
functions.php
fichier :add_filter( 'wpcf7_support_html5_fallback', '__return_true' );
Modernizr ne change en fait rien de la façon dont le nouveau HTML5 types d'entrée sont traitées. C'est une fonctionnalité détecteur de, pas d'une cale d'épaisseur (sauf pour
<header>
,<article>
, etc., qui il des cales pour être traitées comme des éléments de bloc similaire à<div>
).À utiliser
<input type='date'>
, vous auriez besoin de vérifierModernizr.inputtypes.date
dans votre propre script, et si c'est faux, tourner sur un autre plugin qui fournit un sélecteur de date. Vous avez des milliers à choisir; Modernizr maintient une liste non exhaustive des polyfills qui vous donnera peut-être quelque part au début. Alternativement, vous pouvez simplement laisser aller - tous les navigateurs revenir àtext
lorsqu'ils sont présentés avec un input type qu'ils ne reconnaissent pas, donc, dans le pire qui puisse arriver est que votre utilisateur doit saisir la date. (Vous pourriez voulez leur donner un espace réservé ou utiliser quelque chose comme jQuery.maskedinput à garder sur la bonne voie.)Vous avez demandé Modernizr exemple, si vous pouvez y aller. Ce code utilise Modernizr pour détecter si le "date" type d'entrée est pris en charge. Si elle n'est pas prise en charge, alors il échoue à JQueryUI datepicker.
Remarque: Vous aurez besoin de télécharger JQueryUI et éventuellement modifier les chemins pour les fichiers CSS et JS dans votre propre code.
J'espère que cela fonctionne pour vous.
Cela est un peu d'un texte d'opinion, mais nous avons eu beaucoup de succès avec WebShims. Il peut pourrir proprement utiliser jQuery datepicker si le natif n'est pas disponible. Démo ici
SOURCE 1 & SOURCE 2
Suffit d'utiliser
<script src="modernizr.js"></script>
dans le<head>
section, et le script d'ajouter les classes qui vous aident à séparer les deux cas: si c'est pris en charge par le navigateur, ou si elle ne l'est pas.Plus qu'à suivre les liens posté dans ce thread. Il vous aidera à: HTML5 de saisie de type date, la couleur, la gamme de support dans les navigateurs Firefox et Internet Explorer
Version de Chrome 50.0.2661.87 m ne prend pas en charge le mm-jj-aa format lorsqu'elle est affectée à une variable. Il utilise aa-mm-jj. IE et Firefox fonctionne comme prévu.
meilleur facile et la solution que j'ai trouvé est, de travail sur les navigateurs suivants
Safari
Deux-Script-Inclure-Solution (2019):
Il suffit d'inclure Mieux-Dom et Mieux Dateinput-Polyfill dans vos scripts section.
Voici une Démo:
http://chemerisuk.github.io/better-dateinput-polyfill/
J'ai eu des problèmes avec cela, le maintien du royaume-UNI jj/mm/aaaa, j'ai d'abord utilisé la réponse de adeneo https://stackoverflow.com/a/18021130/243905 mais qui ne fonctionne pas dans safari pour moi donc changé à ce, qui, autant que je peux dire de toutes les œuvres de la sur - utilisation de jquery-ui datepicker jquery de validation.
Il est très simple et efficace solution pour cette utilisation du filtre. Il suffit d'ajouter le filtre suivant pour votre
functions.php
fichier :