tray-park: Datumsabfrage

Hi!

Unsere check Funktion überprüft, ob der Inhalt eines Formularfeldes ausgefüllt ist und gibt dann eine Nachricht aus.

  
function check()  
{  
	var element = null;  
  
	element = document.getElementById('textfeldberuf');  
		  
		if (element.value.length <= 0)  
		{  
		alert('Bitte geben Sie den Beruf ein!');  
		element.focus();  
		return false;  
		}  
  
else  
	  
	element = document.getElementById('textfeldgeb');  
		if (element.value.length <= 0)  
		{  
		alert('Bitte geben Sie den Geburtstag ein!');  
		element.focus();  
		return false;  
		}  

Wie kann man es nun machen, dass bsp. auch auf die Korrektheit der Eingabezeichen geachtet wird?

Man soll also auch eine Nachricht bekommen, wenn Buchstaben, statt Zahlen verwendet wurden.

Grüße Tray

  1. Moin!

    Wie kann man es nun machen, dass bsp. auch auf die Korrektheit der Eingabezeichen geachtet wird?

    Man soll also auch eine Nachricht bekommen, wenn Buchstaben, statt Zahlen verwendet wurden.

    Dafür gibt's z.B. <http://de.selfhtml.org/javascript/objekte/regexp.htm@title= Regular Expressions>.  Quasi so, wie bei Deinem serverseitigem Code, den du sicherlich hast, damit all die Usereingaben an JS vorbei ebenfalls kontrolliert werden.

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
  2. Wie kann man es nun machen, dass bsp. auch auf die Korrektheit der Eingabezeichen geachtet wird?

    Wie gesagt indem man prüft, ob der Wert auf einen regulären Ausdruck passt (oder nicht).

    Man soll also auch eine Nachricht bekommen, wenn Buchstaben, statt Zahlen verwendet wurden.

    Z.B.
    if (/[a-z]/i.http://de.selfhtml.org/javascript/objekte/regexp.htm#test@title=test(element.value)) {
       alert("Fehler, Geburtstag enthält Buchstaben!");
    }

    Das sieht etwas wirr aus, aber /[a-z]/i notiert den reguläre Ausdruck bzw. erzeugt ein RegExp-Objekt, das dann die Methode test() hat. Das [a-z] heißt ein beliebiges Zeichen zwischen A und Z und das i hinter den Schrägstrichen heißt, dass Groß- und Kleinschreibung nicht beachtet werden (gleichwertig wäre /a-zA-Z/).

    Mathias

  3. hi tray

    wenn du einfach nur testen willst ob zahlen oder buchstaben eingegeben wurden könntest du folgendes nutzen:

    <script type="text/javascript">
    function CheckZahl (Wert) {
      if (isNaN(Wert)) {
        alert(Wert + " ist keine Zahl!");
      }
    }
    </script>

    isNaN = is Not a Number
    diese funktion schlägt an, wenn der eingegebene wert keine zahl ist.

    wenn du detaillierter nachprüfen willst musst du mit regulären ausdrücken arbeiten. emailfelder kann man z.b. folgendermaßen auf ihr korrektes format prüfen:

    if(!document.formularname.email.value.match(/[1]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i))
    {
       alert("....dein hinweistext ...")
    }

    ich hoffe das hilft dir

    grüße
    tobi


    1. A-Z0-9._%- ↩︎

    1. if (isNaN(Wert)) {
          alert(Wert + " ist keine Zahl!");
        }

      isNaN = is Not a Number
      diese funktion schlägt an, wenn der eingegebene wert keine zahl ist.

      Das prüft, ob der Wert als JavaScript-Zahl interpretiert werden kann. Es prüft nicht, ob der Wert das ist, was man für gewöhnlich unter Zahl versteht (die nicht negativen ganzen Zahlen oder reelle Zahlen mit einem Komma als Dezimaltrennzeichen).

      Gültige JS-Zahlen sind z.B.:

      0 sowie -0
      123 sowie -123
      156.21 sowie -156.21
      Infinity sowie -Infinity
      0XABC sowie -0XABC (Hexadezimalschreibweise, dezimal (-)2748)
      0123 sowie -0123 (Oktalschreibweise, dezimal (-)83)
      -.01E-12 (Exponentialschreibweise, gleich -1 mal 10 hoch -14)

      Die will man aber allesamt üblicherweise nicht in einem Feld stehen haben, wenn eine »Zahl« erwartet.

      Ungültig hingegen ist z.B.:

      15,2

      Insofern sollte man hier von isNaN, Number() und dergleichen die Finger lassen, wenn das Formularfeld nicht den Zweck hat, dass man eine Zahl eingibt, die dann ausschließlich von JavaScript verstanden und verarbeitet werden muss.

      Zahlen überprüft man besser auch als Strings mit Regulären Ausdrücken. Anschließend könnte man sie in Zahlen umwandeln, um bspw. zu prüfen, ob die Zahl zwischen 5 und 10 liegt.

      Mathias