Ankündigung

Einklappen
Keine Ankündigung bisher.

Mit Javascript auf Dezimalzahl prüfen (Komma und / oder Punkt getrennt)

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mit Javascript auf Dezimalzahl prüfen (Komma und / oder Punkt getrennt)

    Hallo.
    Ich krieg schon vieles alleine hin. Hab aber eine kleine Frage:
    Wie kann ich mit Javascript auf Dezimalzahl prüfen (Komma und / oder Punkt getrennt), und am besten auch mit/ohne Tausender Zeichen.
    Danke im Voraus.


  • #2
    Wozu brauchst du das?
    Bitte Beispiel nennen und oder Code dazu.

    Kommentar


    • #3
      Für ein Inserieren Formular.
      Alle Abfragen funktionieren über diese Standardfunktion:

      Code:
      if (document.inserieren.titel.value == "") {
              var x = "Bitte einen Titel angeben:";
              document.getElementById("titel").innerHTML = x;
              document.inserieren.titel.focus();
              return false;
          }
      Nur mit der Preiseingabe bekomme ich das nicht hin

      Kommentar


      • #4
        Zitat von king-ich Beitrag anzeigen
        Hallo.
        Ich krieg schon vieles alleine hin. Hab aber eine kleine Frage:
        Wie kann ich mit Javascript auf Dezimalzahl prüfen (Komma und / oder Punkt getrennt), und am besten auch mit/ohne Tausender Zeichen.
        Danke im Voraus.
        Was verstehst du unter prüfen?
        Willst du nur wissen ob eine Zahl ein Komma oder Punkt erhält ? Oder soll damit noch was passieren ?

        Kommentar


        • #5
          auf Dezimalzahl prüfen (Komma und / oder Punkt getrennt),...
          Preiseingabe
          Was wenn der Preis zB genau 5000 ist? Das würde laut deiner Logik dann ungültig sein?
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Wenn du ein number input nimmst, macht der Browser bereits die Überprüfung.

            Kommentar


            • #7
              Zitat von king-ich Beitrag anzeigen
              Für ein Inserieren Formular.
              Alle Abfragen funktionieren über diese Standardfunktion:

              Code:
              if (document.inserieren.titel.value == "") {
              var x = "Bitte einen Titel angeben:";
              document.getElementById("titel").innerHTML = x;
              document.inserieren.titel.focus();
              return false;
              }
              Nur mit der Preiseingabe bekomme ich das nicht hin
              Das überprüfen ob ein Wert gesetzt wurde oder nicht kannst du ruhig dem Browser überlassen.
              Du musst nur das Attribut required dranhängen. Siehe https://wiki.selfhtml.org/wiki/HTML/...von_Formularen
              Wenn du in input type="number" nimmt der Browser je nach Sprache automatisch das Komma.
              lang="de" im form Element oder im übergeordneten html Element erzwingt zudem die Eingabe in der geforderten Sprache.
              Schau dir dazu auch mal diesen Thread an.

              Quelle zu Internationalen Eingaben:https://www.w3.org/International/wik...le-based_forms


              Kommentar


              • #8
                Zitat von hausl Beitrag anzeigen

                Was wenn der Preis zB genau 5000 ist? Das würde laut deiner Logik dann ungültig sein?
                Nein. Es sollen auch Ganzzahlen eingegeben werden können.

                @Dormilich & @protestix:

                Ich möchte aber gerne den Fehlertext per Javascript über
                innerHTML ausgeben wenn die eingegebene Zahl keine Ganzzahl oder Kommazahl mit/ohne Tausender Trennpunkt ist...

                Kommentar


                • #9
                  Das ist unnötig, weil mit required immer eine Eingabe erzwungen wird. Und Ganzzahlen kannst du natürlich auch eingeben.

                  Probiere doch mal wenigstens au aus was dir empfohlen wird. Zudem sollte Javascript immer nur eine Rückfalllösung sein.

                  Vielmehr sollte du dich auf dein PHP Script konzentrieren, und dort die Eingaben validieren.

                  Kommentar


                  • #10
                    @protestix

                    Das mit Javascript soll einfach User freundlich sein und bereits eine Vorabprüfung.

                    Im zweiten gebe ich Dir recht, insofern als das ich im php Forum gefragt hätte, wie ich eine Zahl auf Tausender Punkte & gleichzeitig als Dezimalzahl prüfen kann, wobei der Tausender Punkt vom User nicht unbedingt angegeben werden muss.

                    Und diese Abfrage brauche ich auch für Javascript. (Der Optik und Userfreundlichkeit wegen.) Vielen Dank

                    PHP-Code:
                        $angebot_id $_GET['Auktionsnummer'];
                        
                    $eingabe str_replace(',''.'$_POST['preiseingabe']);

                        if (
                    is_numeric($eingabe) || is_float($eingabe)) {

                        
                    $preiseingabe number_format($eingabe3',''.'); 

                    Kommentar


                    • #11
                      wenn du doch nur wissen willst ob ein Punkt oder Komma im Textfeld ist dann mach doch einfach index of abfrage .
                      Würde dir das schon reichen ?
                      https://codepen.io/basti1012/pen/gKOPzp

                      Oder willst du noch speziel wissen ob es einer tausender Punkt ist?

                      Kommentar


                      • #12
                        Javascript ist alles andere als benutzerfreundlich, da du einem etwas aufzwingen willst, das er nicht möchte.
                        Wenn ich zufrieden bin mit meinem englischen Browser, warum darf ich dann nicht die mir geläufigen Fehlermeldungen sehen?
                        Warum zwingst du mir etwas auf. Ach ne, ich schalte besser Javascript mal ab.
                        Was machst du jetzt?
                        Ist deine Variante denn auch Barrierefrei?

                        zum zweiten Punkt:
                        Es kommt erst gar keine Kommazahl an.
                        Input Number konvertiert zu einem EDV-freundlichen decimal point auch wenn das deutsche Format als Eingabe akzeptiert wird und das wird auch als Parameter weitergegeben.

                        Noch ein mal: Teste es!
                        Du machst dir das Leben nur unnötig schwer.

                        Kommentar


                        • #13
                          HTML-Code:
                          <noscript>
                                  <div id="myModal" class="modal">
                          
                            <div class="modal-content">
                              <p style="text-align:center; color:#4697EC">Für diese Anwendung müssen Sie Javascript aktivieren!</p>
                            </div>
                          
                          </div></noscript>
                          Für mich ist die Browser Lösung unschön.

                          @protestix :
                          zum zweiten Punkt:
                          Es kommt erst gar keine Kommazahl an.
                          Input Number konvertiert zu einem EDV-freundlichen decimal point auch wenn das deutsche Format als Eingabe akzeptiert wird und das wird auch als Parameter weitergegeben.
                          In der Ausgabe formatiere ich den Dezimalpunkt zu einem Komma:

                          PHP-Code:
                          $preis $reihe['preiseingabe'];
                                  
                          $preiseingabe number_format($preis2",""."); 

                          Kommentar


                          • #14
                            Du kannst gerne gegen den Strom schwimmen, aber beschwere dich nachher nicht, wenn deine Seite von den Besuchern nicht wie gewünscht angenommen wird.


                            Kommentar


                            • #15
                              Ich habe das in etwa so gedacht:

                              Code:
                                   function bietenFormular() {
                                  "use strict";
                                  if (!document.getElementById('myInput').value.match(/^\d{1,3}(\.\d{3})*\,\d{2}$/)) {
                                      window.alert("Bitte eine gültige Preiseingabe machen!");
                                      document.bietenformular.preisabgabe.focus();
                                      return false;
                                  }
                              }
                              Kann mir jemand helfen?

                              Oder hat jemand (wenn der restliche Code stimmt) den passenden RegExp?

                              Kommentar

                              Lädt...
                              X