JavaScript: Erkennen von aktivem "Caps Lock" bei gedrückten Ziffern-Tasten
bearbeitet vonAn sich nachvollziehbar und grundsätzlich zu befürworten, dass bei zukünftigen Vorhaben moderneren Standards der Vorzug gegeben werden sollten, aber diese recht umfangreiche Anwendung, um die es geht, ist eben nicht von mir - kein Privatprojekt - und ich kann da nicht nach Belieben rumbasteln und unsaubere Vermischung von Standards sollte bei größeren Projekten mit professioneller Ausrichtung so weit wie möglich vermieden werden. Bei zukünftigen (Folge-)Projekten würde natürlich auf HTML 5 gesetzt werden.
> > Bisher ist in der Anwendung noch alles in XHTML geschrieben.
> > HTML5-Attribute wie
> >
> > ~~~js
> > text="number"
> > ~~~
> >
> > kommen eher nicht als Lösung in Frage...
>
> Du meinst sicher `<input type="number">`{: .language-html}. Dieses Attribut exisitierte in XHTML noch nicht, aber ist fester Bestandteil von HTML5. Wenn ein Browser dieses Attribut allerdings in einem XHTML-Dokument findet, dann stört ihn das nicht weiter und er wird es trotzdem nach aktuellem Stand der Dinge (lies HTML5) interpretieren. Die einzige Ausnahme wäre, wenn du den Browser explitizit in den strikten, nicht-fehlertoleranten Modus versetzt hast, das darfst du in diesem Fall nicht machen. Das Attribut gibt dir aber gewisse Vorteile, die du nicht anders erzielen kannst:
>
> - Der Arbeitsaufwand für dich ist geringer
> - Die Formularvalidierung funktioniert auch ohne JavaScript
> - Die Formularvalidierung ist auch für assistive Technologie und andere Peripherie zugänglich
> - Smartphones und andere mobile Geräte können eine spezialisierte virtuelle Tastatur zur Eingabe von Zahlen anbieten
>
> Wenn du bisher nur strikten XHTML-Code geschrieben hast und ihn nun mit HTML5 mischen musst, tut das nachvollziehbar weh, weil es irgendwie einen unsauberen Anschein hinterlässt. Defakto ist aber jeder Kompromiss den du nur Zugunsten der Reinheit deines XHTML-Codes eingegangen bist und in Zukunft noch eingehen wirst eine unsaubere Vorgehensweise. Mittel- und Langfristig solltest du also gleich zu HTML5 greifen und die Dinosaurier ruhen lassen.