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

Beitrag lesen

@@fakeraol:

nuqneH

Wieso 9 ?
Weil beim ersten stepUp() nicht 2 + 3 gerechnet wird. Die entsprechende Stelle in de Spec hatte ich verlinkt – just in dem Posting, auf das du gerade geantwortet hast.

Dann macht es der Firefox falsch (gerade ausprobiert, Ergebnis:8)

Nee, er macht’s richtig. Chrome auch. Mein Fehler.

Ich hab die Stelle in den Specs auch nicht gefunden, auf die Du Dich beziehst.

“6. If value subtracted from the step base is not an integral multiple of the allowed value step, then set value to the nearest value that, when subtracted from the step base, is an integral multiple of the allowed value step, and that is less than value if the method invoked was the stepDown() and more than value otherwise.”

Bedeutung von step base und allowed value step ist jeweils verlinkt. Und siehe da: step base ist in dem Fall nicht 0, da ja value gesetzt ist.

Es geht also: 2 → 5 → 8.

Was ist bei deinem Eingabeld nun anders? value wird nicht mit HTML, sondern (später) mit JavaScript gesetzt. Für die Berechnung von step base wohl zu spät, diese ist 0.

Ersetze <input step="3" value="2" max="10"/> durch

<input step="3" value="2" max="10"/>  
<script>[code lang=javascript]document.querySelector('input').value = 2;
~~~</script>[/code]  
  
und Chrome verhält sich entsprechend Punkt 6: 2 → 3 → 6 → 9. Firefox versagt seinen Dienst; sollte er nicht.  
  
  
Ich habe allerdings in der Spec nichts gefunden, warum ein Browser bei Änderung von value nicht step base neu berechnen sollte. Allerdings auch nicht, dass er das tun sollte.  
  
  

> > Ja, du misbrauchst type="number", wo du doch type="date" verwenden möchtest.  
>   
> Da ich das Datum im Format "7. August. 2014" ohne "Dekoration" (Rahmen und Buttons des Input[date]) benötige  
  
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?  
  
Qapla'

-- 
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)