fakeraol: Input type=number mit großen Werten "funktioniert nicht"

Beitrag lesen

Styling ist Sache von CSS. Statt eines menschenlesbaren Datums willst du einen Timestamp im Eingabefeld stehen haben, der sich aus für den Nutzer kaum nachvollziehbare Weise ändern soll?

Mit CSS kann ich die Darstellung des Input[date] nicht auf das benötigte Format ändern. Ich muß also sowieso ein zusätzl. Element (span) für die visuelle Ausgabe nutzen. Nutze ich Input[date], muß ich mangels Methode "getDate()" des Elements den Inhalt von Value auslesen, zerlegen, und neu zusammensetzen. Da ist das einfacher:

  
<span id="datum">?</span><input id="kalender" type="number" value="0" onchange="setdate()">  
<script type="text/javascript">  
var d = new Date();  
var k=document.getElementById("kalender");  
var Monat = new Array("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");  
function setdate(){  
	d.setDate(d.getDate()+Number(k.value));  
	k.value=0;  
	document.getElementById("datum").firstChild.data=d.getDate()+". "+Monat[d.getMonth()]+" "+d.getFullYear();  
	}  
setdate();  
</script>

Das W2C kann natürlich in den Specs festlegen, was es will. Wenn ich aber ein Element benutze, das für mathematische Berechnungen gedacht ist, erwarte ich, daß es nach den bekannten mathematischen Regeln funktioniert. Auch wenn ich Value nachträglich per Javascript ändere, kann ich exakte Rechenergebnisse erwarten, und solange ich nicht den gültigen Zahlenbereich auf Ganzzahlen einschränke, hat bis auf Division durch Null jede Rechenoperation ein gültiges Ergebnis zu liefern, von mir aus mit einer default-Genauigkeit und max. Genauigkeit, aber ungefragt zu runden, oder gültige math. Operationen zu verweigern bedeutet in meinen Augen, daß die Spec./Implementation kaputt/Müll ist.

Fazit: Lösung/Workaround gefunden, Spec./Umsetzung in Firefox noch fehlerhaft.

Danke für die Hilfe, netten Tag, Raik