SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

SOFTWARE


Zu den wichtigsten Anwendungsmöglichkeiten von Javascript gehört die Prüfung von Formulareinträgen. Einige sollen erzwungen werden, manche sollten auf Sinnhaftigkeit überprüft werden, bevor eine Reaktion, wie z.B. das Abschicken des Formulars, ausgelöst werden soll.
Vorab einige Informationen:

  • Formulare oder Formularelement werden über ihreNamen oder die Array-Zählung angesprochen. Dabeigelten die JavaScript-Konventionen. Heiße das zweiteFormular auf der Seite etwa "meldung", das ersteFormularelement, eine Textbox "emailadr", dannwäre der Inhalt dieser Textbox entweder mit: window.document.meldung.emaildr.valueoder window.document.forms[1].elements[0].valueanzusprechen. Auch der Mix beider Bezeichnungsweisen funktioniert.
  • Es muß immer einen Anlaß für die Prüfunggeben. Das wird meistens eines der auswertbaren Eventssein. Solche Ereignisse, wie onClick, MouseOver oder onBlurkönnen eine Prüfung veranlassen. Das mußin der öffnenden Klammer des <input>-Tags inder Form onClick="meine_pruef_funktion()" geschehen.Eine solche muß natürlich auf der Seite bekanntsein und wird in der Regel im Head-Teil des Dokumentsdefiniert.
  • Wenn die Prüfung mit dem Submit-Button erfolgensoll, wird zunächst unabhängig vom Prüfergebnisder Formularinhalt verschickt. Meldet man allerdings demEventhandler ein "false", dann unterbleibt das Versenden.Deshalb soll die Prüffunktion abhängig vom Ergebnisder Prüfung ein true oder falsezurückmelden. Solche Rückmeldung geschieht mitden Befehlen: return true; oder return false;.
Eintrag im Head: 
<script language=JavaScript> 
   function pruefe() 
   {      
      if(window.document.fragebogen.nachname.value=="") 
      { 
         alert("Den Namen bitte eintragen!"); 
         return false; 
      } 
   } 
</script>

Code des Formulars: 
<form name="fragebogen" action="mailto:adress@provi.de" method=post> 
   <input type=text name="nachname">
   <input type=submit onClick="return pruefe()"> 
</form>

 

Wozu prüfen?

Warum soll ein Formular geprüft werden? Gegen willentliche Falscheingabe kann man sich nicht schützen. Man kann aber den Nutzer davor bewahren, versehentlich seinen Eintrag in ein falsches Feld zu setzen. Wenn man die möglichen Kontrollen auf diesen Fall hin konzipiert, werden sie nicht allzu aufwendig. Auch in diesem Fall muß man die Vielfalt möglicher Reaktionen des Nutzers in Rechnung stellen. Wenn man nach dem Einkommen des Nutzers fragt, sollte das Textfeld Zahleingaben zulassen, kann ja sein, es gibt so dumme Nutzer. Es sollte aber auch Texte zulassen, damit der Nutzer z.B. antworten kann: "Du tickst wohl nicht richtig?"


Textfeld leer?

Eintrag im Head: 
<script language=JavaScript> 
   function ob_text(eintrag) 
   { 
      if(eintrag == "") 
      { 
         alert("Mausefalle!\nErst einen Namen eintragen!"); 
         document.frag.nach.focus(); 
         return false;
      } 
   } 
</script>
Code des Formulars: 
<form name="frag">
    Bitte den Namen eintragen! 
   <input type=text name="nach" onBlur="ob_text(this.value)"> 
   <input type=button value="Fertig">
</form>
Bitte den Namen eintragen!   

Achtung: Wenn Sie diese Prüfroutine testen, ohne zuvor das Textfeld angeklickt zu haben, geschieht nichts. Wenn das Textfeld den "Focus" nicht erhält, kann es ihn auch nicht verlieren. In einem echten Formular muß der Focus zu Beginn auf das so zu prüfende Textfeld gesetzt werden, damit beim Verlassen die Prüfung erfolgt. Wenn nach Texteintrag beim Drücken der Taste nichts geschieht, haben Sie das Textfeld erfolgreich verlassen.
Nun zur eigentlichen Mausefalle. Wenn der Focus zurückgesetzt wird, wird offenbar auch das onBlur-Ereignis ausgelöst! Dieser Effekt tritt aber komischerweise manchmal auf, manchmal nicht. Ich gehe der Sache weiter nach.
Tip: Wenn das Meldungsfenster immer wieder erscheint, eine Buchstabentaste drücken und festhalten, dann mehrfach das Fenster wegklicken.


Mehrere leere Textfelder?

Sie haben ein tolles Formular gestaltet, das wenn, dann ganz ausgefüllt werden soll. Den Focus ins Formular zu setzen und eine Mausefalle wie oben zu produzieren, wäre Nötigung. Besser ist  es, das "ob" des Ausfüllens dem Nutzer zu überlassen,  ihm aber nicht zu gestatten, ein halbleeres Formular zu versenden. Jetzt kommt die interne Elemente-Zählung ins Spiel:

Eintrag im Head, unhöfliche Form: 
<script language=JavaScript> 
   function vollstaendig() 
   { 
      voll=true; 
      for(n=0;n<25;n++) 
      {
          if(window.document.datenblatt.elements[n].value== "") 
          voll=false;
      }
      if(!voll)alert("Bitte alle Felder ausfüllen!"); 
      return voll; 
   } 
</script>

Code des Formulars: 
<form name="datenblatt" action="mailto:adress@provi.de" method=post> 
   <input type=text name="ersterEintrag">
   ...
   <input type=text name="fuenfundzwanzigsterEintrag">
   <input type=submit onClick="return vollstaendig()"> 
</form>

   

Ist der Text ein Text?

Ob eine Texteingabe sinnvoll ist, kann nur umständlich ermittelt werden. Wenn in einem Namen allerdings Zahlen oder Steuerzeichen auftauchen, dann darf man eine Fehleingabe vermuten. Weil solche Test bei mehreren Textfeldern sinnvoll sein können, erfolgt der Aufruf mit der Nummer des Tabellenelements. Man könnte stattdessen (nach Änderung im Script-Text natürlich!) auch den jeweiligen Elementnamen übergeben.
Geprüft wird so:

<script language=JavaScript> 
function ists_text(num) 
   { 
      ist_text=true;
      pruef_text=window.document.test.elements[num].value.toUpperCase();
      if(pruef_text.length==0)
         ist_text=false;
      else
         for(n=0;n<pruef_text.length;n++)
             {if(pruef_text.charAt(n)<"A"||pruef_text.charAt(n)>"Z")ist_text=false;}
      if(ist_text) 
         alert("Wunderbar, mein(e) liebe(r) "+ window.document.test.elements[num].value+"!");
      else 
         {
             alert("Kein gültiger Text, bitte noch einmal!" 
             window.document.test.elements[num].focus();
         } 
    } 
</script>
Formular: 
<form name="test"> 
   Name eintragen! Versuch es, eine  Zahl loszuwerden!
   <input type=text>
   <input type=button value="Prüfen!" onClick="ists_text(0);"> 
</form>
Name eintragen! Versuch es, eine Zahl loszuwerden!   

Übrigens, wer hier "Müller-Lüdenscheid" versucht, hat Pech, denn nicht nur der Bindestrich wird zurückgewiesen! Die obige Prüfung geht nur für Amis etc. ohne Bindestrich. Wollen wir es für Deutsche mit Bindestrich auch mal versuchen? Jetzt wird die Abfrage natürlich komplizierter. Insbesondere Herr Nußbaum macht Ärger, weil es kein großes "ß" gibt. Deshalb würde ich jetzt Kleinbuchstaben prüfen, außerdem muß die Fragetaktik geändert werden.

diesmal also: 
var zeichen="abcdefghijklmnopqrstuvwxyzäöüß-";
pruef_text=window.document.test.elements[num].value.toLowerCase();
und die Prüfabfrage könnte nun etwa lauten: 
if(zeichen.indexOf(pruef_text.charAt(n))==-1)....
Jetzt sind deutsche Sonderzeichen möglich!   

Ist die Zahl eine Zahl?

Hier soll geprüft werden, ob der Eingabe-String nur Ziffern enthält. Das geht analog zum Test auf Buchstaben. Allerdings ist hier die Parameterübergabe anders geregelt. Eine kleinen Unzulänglichkeit: Führende oder angehängte Leerzeichen werden moniert. Hier ist die Routine etwas sehr pingelig.

<script language=JavaScript> 
   function ists_zahl(wort) 
   { 
      ist_zahl=true;
      if(wort.length==0)
         ist_zahl=false;
      else 
         for(n=0;n<wort.length;n++)
            {if(wort.charAt(n)<"0"||wort.charAt(n)>"9")ist_zahl=false;}
      if(ist_zahl)
          alert(wort + " ist wirklich eine Zahl!");
      else
      {
          alert("Keine gültige Zahl eingetragen");
          window.document.test3.zahlein.focus();
      } 
   } 
</script>
Im Formular steht: 
<form name="test3"> 
   Bitte eine ganze Zahl eintragen! Versuch es, die Box auszutricksen!
   <input type=text name="zahlein">
   <input type=button value="Prüfen!" onClick="ists_zahl(zahlein.value);"> 
</form>
Bitte eine ganze Zahl eintragen! Versuch es, die Box auszutricksen!   

Ist's eine E-Mail-Adresse?

Was verlangt man von einer E-Mail-Adresse? Das "@" ist obligatorisch. Ein Punkt muß die Länderkennung einleiten, die zwei, im Fall der amerikanischen Kennungen drei Buchstaben lang sein darf. Alles das kann man Stück für erfragen. Wenn man die obigen Abfragen begriffen hat, kann man es ohne ein Beispiel. Eleganter und in einem Rutsch geht es aber mit Regulären Ausdrücken.

Die Funktion lautet:
function ists_email(wort)
   {
   var text=(wort.match(/\w*@\w.*\.\w\w*/)!=null)?"Paßt scho!":"Keine zulässige E-Mail-Adresse!";
   alert(text);
   }

 
und nun das Formular:
<form name="test4">
   Bitte eine E-Mail-Adresse eintragen! Versuch es, die Box auszutricksen!
   <input type=text size=30 name="mailein">
   <input type=button value="Prüfen!" onClick="ists_email(mailein.value);">
</form>
Bitte eine E-Mail-Adresse eintragen! Versuch es, die Box auszutricksen!
  


 

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere