IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Définir la valeur par défaut d'une date sous Firefox 57 Quantum


Sujet :

HTML

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 93
    Points : 95
    Points
    95
    Par défaut Définir la valeur par défaut d'une date sous Firefox 57 Quantum
    Bonjour,

    J'ai un gros problème avec Firefox, depuis mon passage à 57 Quantum.
    Dans tous mes formulaires, j'ai systématiquement programmé un type="date" pour tous les champs de saisie qui devaient en contenir une.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT id="inputRV" type="date" name="dateRV" value="<? php echo($leRendezVous->getDate()); ?>" title="Date et heure du rendez-vous" required/>

    En HTML, ça donne
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT id="inputRV" type="date" name="dateRV" value="20180215143000" title="Date et heure du rendez-vous" required/>
    Pour un rendez-vous prévu le 15 février 2018 à 14:30

    Firefox Quantum ignore systématiquement la date mentionnée par défaut. J'ai essayé avec différents formats, dans l'attribut value de mon input
    201802151430
    2018-02-15 14:30
    2018/02/15 14:30:00

    Et aussi, en changeant le type="datetime-local" au lieu de "date"
    Ce qui revient à un champ texte, au lieu d'un datepicker.

    Mais toujours en respectant l'ordre année mois jour heure minute seconde, pour rester compatible avec le DATETIME de Mysql ainsi exprimé.
    Aussi en tenant compte de ce que tous mes clients n'ont pas encore Firefox Quantum.

    Par conséquent, à la sauvegarde du formulaire, je perds la date et l'heure de mes rendez-vous, ce qui est bloquant.
    Alors que les champs texte, affichés dans les type="date" avant FF 57 Quantum, gardaient et restituaient leurs valeurs par défaut.
    Autant dire que, sous FF 57 Quantum, mes formulaires comportant un champ type="date" sont devenus inutilisables.

    Quelqu'un aurait-il une solution ?
    Régresser, les définir comme des type="text", pour éviter les nouveaux datepicker amnésiques ?

    Importer des librairies ?
    On trouve des tas de datepickers sur le web, mais je préfère éviter l'importation de code extérieur, que je ne maîtrise pas,
    m'en tenir aux standards du W3C, et aux fonctions offertes par le navigateur.
    ---------------------------

    Tant que j'y suis, existe t'il un type permettant de définir aussi l'heure, dans le même champ ?
    J'ai essayé type="datetime-local", sans succès

    Plutôt que de devoir faire un champ date, et un autre type="time", pour recueillir l'heure séparément, et assembler les deux valeurs logiciellement en une seule variable ?
    Ce qui est possible, mais lourd, surtout vu le nombre de formulaires à adapter, qui requièrent la définition de la date et de l'heure, à la minute près.

    Merci.
    Christian.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="date" name="dateRV" value="2017-12-25" title="Date et heure du rendez-vous" required/>
    <input type="date" name="dateRV" value="20180215143000" title="Date et heure du rendez-vous" required/>

    Les navigateurs attendent une date respectant le format adéquat yyyy-mm-dd !

    Dans Chrome :
    The specified value "20180215143000" does not conform to the required format, "yyyy-mm-dd"
    .

    Dans Firefox : pas d'avertissement, mais pas de date affichée.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par cmascart Voir le message
    Alors que les champs texte, affichés dans les type="date" avant FF 57 Quantum, gardaient et restituaient leurs valeurs par défaut.
    Tu veux dire que, avant Quantum, les champs affichaient des valeurs comme « 20180215143000 » ? Les utilisateurs comprenaient quelque chose ?
    Autant dire que, sous FF 57 Quantum, mes formulaires comportant un champ type="date" sont devenus inutilisables.
    Pour l’usage que tu en faisais, en effet. Mais ce qui est amusant c’est que tu te reposais en fait sur une non fonctionnalité, car les champs se comportaient comme s’ils étaient de type "text".

    Quelqu'un aurait-il une solution ?
    Régresser, les définir comme des type="text", pour éviter les nouveaux datepicker amnésiques ?
    Oui. Mais je te conseille d’afficher quelque chose d’humainement lisible côté client. Rien ne t’empêche de mettre ta valeur « métier » dans un input type "hidden" et d’utiliser un peu de JavaScript pour la coupler avec un champ de texte qui affiche une date intelligible. Tu peux t’aider de toLocaleDateString.

    Tant que j'y suis, existe t'il un type permettant de définir aussi l'heure, dans le même champ ?
    J'ai essayé type="datetime-local", sans succès
    Effectivement, il n’est pas encore implémenté dans Firefox. Voir ce tableau de compatibilité.

    C’est tout à ton honneur de vouloir utiliser uniquement du code vanilla. Cependant, en attendant la propagation d’une version de Firefox qui supportera "datetime-local", il faut adopter une solution intérimaire. De là tu as le choix : soit tu implémentes ton propre picker (et c’est casse-gueule, je le sais, j’ai essayé) ; soit tu utilises du code tiers. Ou alors…

    Plutôt que de devoir faire un champ date, et un autre type="time", pour recueillir l'heure séparément, et assembler les deux valeurs logiciellement en une seule variable ?
    Ce qui est possible, mais lourd, surtout vu le nombre de formulaires à adapter, qui requièrent la définition de la date et de l'heure, à la minute près.
    … Ou alors tu t’en tiens à un champ texte — après tout, quand on remplit un formulaire papier on n’a pas vraiment de problème à écrire une date et une heure — et, comme je le disais juste au-dessus, tu utilises un input caché et un peu de JS pour assembler les valeurs.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. [Débutant] Définir une valeur par défaut d'une propriété
    Par Rainui dans le forum VB.NET
    Réponses: 15
    Dernier message: 10/01/2013, 22h58
  2. Réponses: 7
    Dernier message: 29/06/2007, 15h39
  3. Réponses: 2
    Dernier message: 06/07/2004, 17h46
  4. Réponses: 2
    Dernier message: 18/10/2003, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo