2017-09-25 5 views
2

J'essaie de définir une valeur très ancienne dans un DateTextBox. Malheureusement, le widget n'acceptera pas les dates définies dans une année inférieure à '100'.Dijit DateTextBox définir la date dans un an inférieur thatn 100

Lorsque j'essaie de définir la valeur de l'élément sur 0017-01-01, le widget se définit automatiquement sur 2017-01-01.

La propriété de valeur affichée reste inchangée jusqu'à ce que le widget ne devienne flou, puis il est remplacé par la date interne.

<input type="date" 
    data-dojo-type="dijit/form/DateTextBox" 
    value='0017-01-01' 
    id="myDate" /> 

Est-il possible de permettre des dates antérieures 0100-01-01 dans le DateTextBox?

Je construis aussi un petit jsFiddle pour démontrer l'effet: http://fiddle.jshell.net/shfe1oqs/

Répondre

2

Vous pouvez ajouter le constraint strict == true à votre DateTextBox:

<input type="date" data-dojo-type="dijit/form/DateTextBox" 
data-dojo-props="constraints: {strict: true}" value='0017-01-01' id="myDate" /> 

Le jsFiddle modifié: http://fiddle.jshell.net/fuzxt1fb/3/

Notez que vous devra entrer des valeurs de deux chiffres pour le jour et le mois

+0

Merci pour r la réponse. Malheureusement, la date interne du widget est toujours Sun Dim 01 2017 00:00:00 GMT + 0100 (CET). Selon la [documentation api] (https://dojotoolkit.org/api/?qs=1.10/dojo/date/locale#1_10dojo_date_locale_parse) l'analyseur de date utilisé dans dojo ne permet tout simplement pas les dates plus anciennes que l'année 100 :( –

+0

Etes-vous sûr? Ne vous obtenez pas sur le jsfiddle modifié: "Valeur interne du widget: Jeu Janvier 12 0017 00:00:00 GMT + 0100", ce qui est ce que je reçois? Le document API que vous mentionnez dit: " l'année <100CE requiert le mode strict "Je pourrais confirmer dans le débogueur que la fonction d'analyse dojo.locale renvoie un objet date avec la valeur Date 0017-01-16T23: 00: 00.000Z (ma zone locale est Paris), qui est stockée dans la propriété widget 'valeur' ​​ –

+0

Je suis désolé, la solution n'a pas fonctionné dans le jsfiddle pour moi (essayé dans un autre navigateur etc) J'ai fait un test local minimal et cela a fonctionné Merci beaucoup :) –