Validate (jQuery Plugin): Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 1: Zeile 1:
 +
Siehe auch [[jQuery - ValidationEngine]]
 +
 
== Links ==
 
== Links ==
  

Version vom 1. August 2013, 05:44 Uhr

Siehe auch jQuery - ValidationEngine

Links

Media:jquery-validate-js.zip

http://docs.jquery.com/Plugins/Validation

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

http://blogs.fau.de/webworking/2011/05/13/tutorial-zur-eingabevalidierung-von-formularen-mit-hilfe-von-jquery/ (Zugriff: 2012-05)

Anleitung

Standard Validierung

Standardmäßig wird einfach in der Initialisierung das Formular mitgegeben (jQuery Standards)

<script type="text/javascript" src="jquery-latest.js"></script>
<script type="text/javascript" src="jquery.validate.js"></script>
<script type="text/javascript">
$(document).ready(function(){
     $("#Formular").validate();
});
</script>

In den Formularen werden einfach Klassen mitgegeben. Anhand dieser validiert das Tool:

<input class="required" type="text" value="" name="tx_gbtelecash_pi1[firstname]">

Standard Klassen zur Validierung

Die wichtigsten sind:

 class=”required”: Feld muss gesetzt sein
 class=”url”: Feld muss eine gültige URL enthalten
 class=”email”: Feld muss eine gültige E-Mail enthalten
 class=”required email”: Feld muss gesetzt und eine gültige E-Mail enthalten

Weitere Validierungsmöglichkeiten über die validate() Funktion

Neben diese Klassen gibt es weitere Möglichkeiten zur Überprüfung. Die wichtigsten hierbei sind:

minlength=”int” (Bsp.: minlength=”3″)
maxlength=”int” (Bsp.: maxlength=”7″) 
min=”int” (Bsp.: min=”3″)
max=”int” (Bsp.: max=”7″)
equalTo=”id” (Bsp.: equalTo=”#passwort”)
range=”int1int2″ (Bsp.: Zahlen zwischen 3 und 7: range=”37″)

Beispiel:

validate({
     rules: {
          vorname: "required",
          nachname: "required",
          passwort: {
               required: true,
               minlength: 6
          },
          passwort2: {
               required: true,
               equalTo: "#passwort",
               minlength: 6
          },
          email: {
               required: true,
               email: true
          }
     }
})

Eigene Validierungsmeldungen definieren

validate({
     messages: {
          vorname: "Bitte Vornamen angeben!",
          nachname: "Bitte Nachnamen angeben!",
          passwort: {
               required: "Bitte Passwort angeben!",
               minlength: jQuery.format("mindestens {0} Zeichen eingeben!")
          },
          passwort2: {
               required: "Bitte Passwort wiederholen!",
               equalTo: "Passwort wiederholen",
               minlength: jQuery.format("mindestens {0} Zeichen eingeben")
          },
          email: {
               required: "Bitte E-Mail-Adresse eingeben!",
               email: "E-Mail im Format name@domain.de eingeben!"
          }
     }
})

Validierung debuggen

Das Plugin hilft über den Parameter debug beim validieren:

validate({ debug: true })

Aktiviert den Debug-Modus. Das Formular wird nicht abgeschickt und vorhandene Fehler werden in der Fehlerkonsole angezeigt (benötigt Firebug oder Firebug Lite)

Eigene Funktionen ausführen

validate({ submitHandler: function(){###} })

Sollte das Formular valide sein, wird der durch ### symbolisierte Quellcode ausgeführt. Ersetzt dabei das Standardverhalten beim Absenden des Formulars.

Komplettes Beispiel

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Eingabevalidierung von Formularen mit Hilfe von jQuery</title>

<style type="text/css">
	* { font-family: Verdana; font-size: 10pt; }
	label { width: 10em; float: left; }
	label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }
	p { clear: both; }
	.submit { margin-left: 12em; }
	em { font-weight: bold; padding-right: 1em; vertical-align: top; }
	form { width: 40em; }
</style>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://view.jquery.com/trunk/plugins/validate/jquery.validate.js"></script>

<script type="text/javascript">
	$(document).ready(function(){
		$("#Formular").validate({
			rules: {
				vorname: "required",
				nachname: "required",
				passwort: {
					required: true,
					minlength: 6,
					maxlength: 10			
				},
				passwort2: {
					required: true,
					equalTo: "#passwort",
					minlength: 6,
					maxlength: 10
				},
				email: {
					required: true,
					email: true				
				}
			},
			messages: {
				vorname: "Bitte Vornamen angeben!",
				nachname: "Bitte Nachnamen angeben!",
				passwort: {
					required: "Bitte Passwort angeben!",
					minlength: jQuery.format("mindestens {0} Zeichen eingeben!"),
					maxlength: jQuery.format("maximal {0} Zeichen eingeben!")
				},
				passwort2: {
					required: "Bitte Passwort wiederholen!",
					equalTo: "Passwort wiederholen",
					minlength: jQuery.format("mindestens {0} Zeichen eingeben"),
					maxlength: jQuery.format("maximal {0} Zeichen eingeben!")
				},
				email: {
					required: "Bitte E-Mail-Adresse eingeben!",
					email: "E-Mail im Format name@domain.de eingeben!"	
				}
			},
			submitHandler: function() {
				alert("submitted!")	
			}
		});
	});
</script>
</head>

<body>
<form id="Formular" method="post" action="validate.php">
	<fieldset>
	<legend>Ein einfaches Formular</legend>
		<p>
			<label for="vorname">Vorname<em>*</em></label>
			<input type="text" id="vorname" name="vorname" size="15"/>
		</p>
		<p>
			<label for="nachname">Nachname<em>*</em></label>
			<input type="text" id="nachname" name="nachname" size="15"/>
		</p>
		<p>
			<label for="passwort">Passwort<em>*</em></label>
			<input type="password" id="passwort" name="passwort" size="15"/>
		</p>
		<p>
			<label for="passwort2">Passwort erneut<em>*</em></label>
			<input type="password" id="passwort2" name="passwort2" size="15"/>
		</p>
		<p>
			<label for="email">E-Mail<em>*</em></label>
			<input type="text" id="email" name="email" size="15"/>
		</p>
		<p>
			<input class="submit" type="submit" value="abschicken"/>
		</p>
	</fieldset>
</form>
</body>
</html>