web-dev-qa-db-fra.com

Comment forcer l'affichage des secondes sur un contrôle d'entrée HTML5 "time"?

Lorsque j'utilise Javascript pour définir la valeur d'un objet HTML5 "time", comme ceci:

document.getElementById("settime").value = "13:24:59";

Il affichera un contrôle du temps avec "13:24:59" dessus, et je peux tout changer. Mais si je fais ça:

document.getElementById("settime").value = "13:25:00";

Il masque les secondes, affichant seulement "13:25" sans secondes. Comment forcer les "00" secondes à apparaître dans ce cas?

(C'est d'ailleurs dans Google Chrome, d'ailleurs.)

31
Joe Z.

Définissez l'attribut step.

Ex: <input id="settime" type="time" step="1" />

document.getElementById("settime").value = "13:24:00";
<input id="settime" type="time" step="1" />

Une note sur attribut step :

L'attribut step peut être utilisé avec une valeur d'entrée numérique pour dicter la granularité des valeurs que vous pouvez entrer. Par exemple, vous pouvez souhaiter que les utilisateurs saisissent une heure particulière, mais uniquement par incréments de 30 minutes. Dans ce cas, nous pouvons utiliser l'attribut step, en gardant à l'esprit que pour les entrées de temps, la valeur de l'attribut est en secondes. Par exemple, un incrément de 30 minutes aurait une valeur de pas de 1800. <input type="time" step="1800">

84
j08691