dedlfix: type="time"

Beitrag lesen

Tach!

Wenn du nur ganze Zahlen haben willst: type="number". Dann wird nicht im Kreis gezählt, d.h. nach 23 kommt nicht 0, aber das ließe sich mit unobtrusive JavaScript leicht realisieren.

Ließe sich leicht realisieren.

Mit schönem Typmischmasch.

const timeInputElement = document.querySelector('#time');

timeInputElement.min--;
timeInputElement.max++;

timeInputElement.addEventListener('input', event => {
	console.log(typeof timeInputElement.value);
	console.log(typeof timeInputElement.min);
	if (timeInputElement.value === timeInputElement.min)
	{
		timeInputElement.value = 23;
	}
	else if (timeInputElement.value === timeInputElement.max)
	{
		timeInputElement.value = 0;
	}
});

Einerseits hat Javascript eine automatische Typumwandlung, so dass es kein Problem ist, dass du mit Variablen vom Typ String Rechenoperationen ausführen kannst (bei timeInputElement.min und timeInputElement.max) und numerische Werte zuweisen kannst (bei timeInputElement.value), andererseits verwendest du typsichere Vergleiche. Du musst dich also darauf verlassen, dass das Javascript im Browser die Numbers stets zu Strings konvertiert, damit der typsichere Vergleich nicht fehlschlägt. Sieht mir recht paradox aus, und ich sehe auch keinen technischen Grund, warum die Typsicherheit hier notwendig wäre.

dedlfix.