Rolf B: Script trotzdem ausführen, auch wenn Variable nicht da ist, nicht existiert!

Beitrag lesen

Hallo Franz,

das weißt Du nicht. Zumindest nicht generisch, auf beliebigen Seiten.

Es gibt Hinweise.

(1) window.navigator.language - liefert Dir die Spracheinstellung im Browser. Aber ist das auch die Sprache, in der die Seite ausgeliefert wird?

(2) Es gibt das lang Attribut, das eigentlich auf's html Element gehört und die Sprache kennzeichnet, in der die Seite ausgeliefert wurde. Aber trotz Gunnars Predigten macht das lange[1] nicht jeder. Und du bist auch nicht sicher, dass es lang nur auf dem html Element gibt.

Eingabe von Zahlen mit Tausendertrenner UND Dezimalzeichen ist tatsächlich ein Drama.

Auf deiner eigenen Seite hast Du bessere Chancen, weil Du da weißt, wie die Sprachauswahl funktioniert. Oder weil Du weißt, dass Du eh nur deutsche Anwender hast, je nach dem. Wenn Du Deine User kennst, oder die dich, dann kann man Vereinbarungen zur Zahleneingabe treffen.

Deine direkte Interaktivität hilft den Usern auch dabei, Fehlinterpretationen von Punkt und Komma zu vermeiden.

Und auch das rettet Dich nicht, wenn Du jemanden am Gerät sitzen hast, der durch Excel final verpunktet ist und sich weigert, ein Dezimalkomma zu verwenden. Es ist am Besten, Tausendertrennzeichen nicht zu beachten und Punkt UND Komma als Dezimaltrennzeichen zu verwenden. Dann reicht allerdings deine getInputAsFloat nicht mehr hin, dann musst Du Kommas durch Punkte ersetzen und den ganzen Rest entfernen. Das sind zwei Replaces. Nebeneffekt: parseFloat("123.456.789") ergibt 123.456. Das könnte man als GIGO[2] definieren, oder man könnte es in drei Schritten machen:

  1. ist value.replace(/[^.,]/g,"").length > 1 (mehr als 1 Trennzeichen) -> Fehler
  2. Ersetze Kommas durch Punkte
  3. Ersetze alles außer 0123456789. durch "".

Alternativ zu 3. kannst Du auch mit value.match(/^0-9.]/) prüfen, ob irgendein unerwartetes Zeichen in der Eingabe ist und eine Fehlermeldung anzeigen.

Mit der E Notation (1.2E7 für 12 Millionen) würde ich die Eingabe nicht belasten. Das kommt im kaufmännischen Bereich nicht vor.

Rolf

--
sumpsi - posui - obstruxi

  1. sorry for me being punny ↩︎

  2. Garbage In - Garbage Out ↩︎

0 77

JavaScript Ergebnis in INPUT Feld + Zahl mittels CSS formatieren

Franz
  • css
  • html
  • javascript
  1. 1
    JürgenB
    1. 0
      Franz
      1. 0
        JürgenB
      2. 0
        Franz
        1. 2
          JürgenB
    2. 1
      Gunnar Bittersmann
      • html
      • javascript
  2. 0

    INPUT Feld als Währung während der Eingabe formatieren

    Franz
    1. 0
      Rolf B
      1. 0

        Alle Zeichen entfernen ausser ZAHLEN

        Franz
        • javascript
        1. 0
          Franz
          1. 0
            Rolf B
            1. 0
              Der Martin
              1. 0
                Matthias Apsel
                1. 0
                  Tabellenkalk
                  1. 0
                    Matthias Apsel
                  2. 0
                    Der Martin
                    1. 0
                      Rolf B
              2. 0
                Gunnar Bittersmann
                1. 0
                  Rolf B
                  1. 0
                    Gunnar Bittersmann
                    1. 2
                      1unitedpower
                2. 0
                  Der Martin
                  1. 1
                    Rolf B
                  2. 0
                    Gunnar Bittersmann
                    1. 0
                      Der Martin
            2. 0

              Script trotzdem ausführen, auch wenn Variable nicht da ist, nicht existiert!

              Franz
              1. 0
                Gunnar Bittersmann
                1. 0
                  Franz
                  1. 0
                    Matthias Apsel
                    1. 0
                      Franz
                      1. 0
                        Matthias Apsel
                      2. 0
                        Tabellenkalk
              2. 3
                Rolf B
                1. 0
                  Franz (in den grossen Stiefel von Watson)
                  1. 0
                    Rolf B
                    1. 0
                      Franz
                      1. 0
                        Rolf B
                        1. 0
                          Franz
                          1. 2
                            Rolf B
                            1. 0
                              Franz
                              1. 0
                                Rolf B
                                1. 0

                                  funktionen in zwei Dateien geht nicht, in einer Datei gehen sie???

                                  Franz
                                  1. 1
                                    Rolf B
                              2. 0
                                Der Martin
                                1. 0
                                  Gunnar Bittersmann
                                  • css
                                2. 0
                                  Franz
                                  1. 0
                                    Der Martin
                                    1. 1
                                      Gunnar Bittersmann
                                      1. 0
                                        Franz
                                        1. 0
                                          Matthias Apsel
                                          1. 0
                                            Rolf B
                                        2. 1
                                          Rolf B
                                          1. 0
                                            Der Martin
                                          2. 0
                                            Gunnar Bittersmann
                                            1. 0
                                              JürgenB
                                        3. 1
                                          MudGuard
                                          1. 0
                                            JürgenB
                                            1. 0
                                              Rolf B
                                              1. 0
                                                JürgenB
                                                1. 0
                                                  Rolf B
                                                  1. 0
                                                    JürgenB
                                                2. 0
                                                  Der Martin
                                3. 3
                                  1unitedpower
                                  1. 0
                                    Gunnar Bittersmann
                                    1. 0
                                      Rolf B
                                      1. 0
                                        Gunnar Bittersmann
                                        • sonstiges
                                        1. 0
                                          Matthias Apsel
                                          1. 0
                                            Gunnar Bittersmann
                                            1. 0
                                              Matthias Apsel
                                              1. 0
                                                Der Martin
                                        2. 0
                                          Gunnar Bittersmann
                                4. 0
                                  Rolf B
                                  1. 0
                                    Der Martin
                                    1. 0
                                      Rolf B
  3. 1
    Gunnar Bittersmann
    • formatierung
    • formulare
    • javascript
    1. 1
      Gunnar Bittersmann