Benutzer-Werkzeuge

Webseiten-Werkzeuge


Plugin installed incorrectly. Rename plugin directory 'swiftmail.backup' to 'swiftmail'.
projekt:jsfundgrube:check_monetary_value

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekt:jsfundgrube:check_monetary_value [2013/07/18 12:21]
martin.oehm
projekt:jsfundgrube:check_monetary_value [2021/07/01 09:52] (aktuell)
Zeile 1: Zeile 1:
 +====== Geldbeträge validieren ======
  
  
 +Diese JavaScript-Funktion überprüft einen eingegebenen Text nach folgenden Regeln:
 +  * Nur Zahlen, Punkte und ein Komma sind erlaubt
 +  * Falls ein Komma vorhanden ist, müssen zwei Nachkommastellen folgen
 +  * Eine führende Null darf nur angegeben werden, wenn direkt danach ein Komma folgt
  
-[code]+Werden diese Regeln durch die Eingabe verletzt, erscheint ein Popup mit dem jeweiligen Hinweistext. Die Eingabe wird nichtsdestotrotz im Feld angezeigt und nach dem Speichern der Smartform auch in die Datenbank geschrieben. 
 + 
 +Außerdem nimmt die Funktion folgende Formatierung vor: 
 +  * Falsch gesetzte Tausendertrennzeichen ("​."​) werden gelöscht 
 +  * Die korrekten Tausendertrennzeichen werden eingefügt 
 +  * Falls kein Komma vorhanden ist, wird an die Eingabe ",​00"​ angefügt 
 +  * Beispiel: die Eingabe "​1234567"​ wird formatiert zu "​1.234.567,​00"​ 
 + 
 +Die Funktion muss als onChange-Funktion des jeweiligen Input-Elementes gesetzt werden. 
 + 
 +<code javascript Geldbeträge validieren>​
 gadget.functions.checkMonetaryValue = function() { gadget.functions.checkMonetaryValue = function() {
  
Zeile 59: Zeile 74:
  neuerValue = neuerValue.substring(0,​j) + "​."​ + neuerValue.substr(j);​  neuerValue = neuerValue.substring(0,​j) + "​."​ + neuerValue.substr(j);​
  counter = 0;  counter = 0;
- //​somethingChanged = true;+
  }  }
  }  }
- //​if(somethingChanged) {+
  if(splitNachKommas.length == 2) {  if(splitNachKommas.length == 2) {
  neuerValue = neuerValue + ","​ + splitNachKommas[1];​  neuerValue = neuerValue + ","​ + splitNachKommas[1];​
Zeile 70: Zeile 85:
  splitNachKommas = this.value.split(","​);​  splitNachKommas = this.value.split(","​);​
  this.entity.setValue(this.id,​this.value);​  this.entity.setValue(this.id,​this.value);​
- //} +
- +
   
  for(var i=0; i<​splitNachPunkten.length;​ i++) {  for(var i=0; i<​splitNachPunkten.length;​ i++) {
- /* MOE 17.07.13: NICHT MEHR BENÖTIGT; DA JETZT DIE TRENNZEICHEN AUTOMATISCH GESETZT WERDEN! +
- if(splitNachPunkten[i].split(","​)[0].length != 3 && i != 0) { //nach einem punkt folgen nicht 3 zeichen und es ist nicht der teil vorm ersten punkt +
- alert("​Bitte überprüfen Sie die Tausendertrennzeichen!"​);​ +
- this.focus();​ +
- this.entity.setValue(this.id,​this.value);​ +
- return;​ +
- }*/+
  if(!isANumber(splitNachPunkten[i].split(","​)[0])) { //die 3 zeichen sind entweder keine zahl oder es befindet sich ein leerzeichen darunter  if(!isANumber(splitNachPunkten[i].split(","​)[0])) { //die 3 zeichen sind entweder keine zahl oder es befindet sich ein leerzeichen darunter
  alert(wert + " ist kein zulässiger Zahlenwert. Bitte geben Sie eine gültige Zahl ein."​);​  alert(wert + " ist kein zulässiger Zahlenwert. Bitte geben Sie eine gültige Zahl ein."​);​
Zeile 147: Zeile 155:
  }  }
  this.entity.setValue(this.id,​this.value);​  this.entity.setValue(this.id,​this.value);​
- //focus muss im feld bleiben, falls etwas nicht passt+
  
 }  }
-[/code]+</code>
projekt/jsfundgrube/check_monetary_value.1374142875.txt.gz · Zuletzt geändert: 2021/07/01 09:53 (Externe Bearbeitung)