Einzelnen Beitrag anzeigen
  #9 (permalink)  
Alt 13-01-2012, 12:31
joextra
 Registrierter Benutzer
Links : Onlinestatus : joextra ist offline
Registriert seit: Jul 2005
Beiträge: 260
joextra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, hier der Code. Und ja, es wird jQuery verwendet.

JS:
Code:
/***************************************
	Register/Change Profile check
	***************************************/
	$('#saveProfile').click(function () {
		var id = $('input[name=id]');
		var name = $('input[name=name]');
		var surname = $('input[name=surname]');
		var street = $('input[name=street]');
		var zip = $('input[name=zip]');
		var place = $('input[name=place]');
		var email = $('input[name=email]');
		var username = $('input[name=username]');
		var password = $('input[name=password]');
		var gender = $('input:radio[name=gender]:checked');
		
		// Check if filled
		if(name.val() == '') {
			//error = true;
			name.css("border", highlight);
			name.focus();
			return false;
		} else {
			name.css("border", deHighlight);
		}
		
		if(surname.val() == '') {
			//error = true;
			surname.css("border", highlight);
			surname.focus();
			return false;
		} else {
			surname.css("border", deHighlight);
		}
		
		if(email.val() == '') {
			//error = true;
			email.css("border", highlight);
			email.focus();
			return false;
		} else if(!emailReg.test(email.val())) {
			//error = true;
			alert("Falsches Email-Format.");
			email.css("border", highlight);
			email.focus();
			return false;
		} else {
			email.css("border", deHighlight);
		}
		
		// check if email exists
		if(id.val() == "") {
			var data = 'email=' + email.val();
			$.ajax({
				url: "checkPostData.php",
				type: "GET",
				data: data,
				cache: false,
				traditional: true,
				async: false,
				success: function(result) {
					if(result == true) {
						error = true;
						alert("Diese Email existiert bereits.");
						email.css("border", highlight);
						email.focus();
					}
				}
			});
		}
		// for: check if email exists
		if(error == true) {
			error = false;
			return false;
		}
		
		if(username.val() == '') {
			//error = true;
			username.css("border", highlight);
			username.focus();
			return false;
		} else {
			username.css("border", deHighlight);
		}
		
		// check if username exists
		if(id.val() == "") {
			var data = 'username=' + username.val();
			$.ajax({
				url: "checkPostData.php",
				type: "GET",
				data: data,
				cache: false,
				traditional: true,
				async: false,
				success: function(result) {
					if(result == true) {
						error = true;
						alert("Diese Benutzername ist bereits vergeben.");
						username.css("border", highlight);
						username.focus();
					}
				}
			});
		}
		// for: check if username exists
		if(error == true) {
			error = false;
			return false;
		}
		
		if(password.val() == '') {
			//error = true;
			password.css("border", highlight);
			password.focus();
			return false;
		} else if(password.val().length < 6) {
			//error = true;
			alert("Das Passwort muss mind. 6 Zeichen lang sein.");
			password.css("border", highlight);
			password.focus();
			return false;
		} else {
			password.css("border", deHighlight);
		}
		
		if(gender.val() != 'm' && gender.val() != 'f') {
			//error = true;
			$(".radio").css("color", "#CC0000");
			return false;
		} else {
			$(".radio").css("color", "#888");
		}
		
		if(error == true) {
			error = false;
			return false;
		} else {
			$("#registerForm").removeAttr("onsubmit");
			pause(1000);
			$("#registerForm").submit();
			return true;
		}
	});
	
	// prevent Form to Submit when pressing Return
	$('#registerForm').bind('keydown',function(e){
		if(e.which == 13){
			//return false;
			$('#saveProfile').trigger('click');
		}
	});
Formular:
HTML-Code:
<form name="registerForm" id="registerForm" action="index.php" method="post" onSubmit="return false;">
<input type="hidden" name="registerForm" value="true">
<input type="hidden" name="registeredSince" value="<?echo $registeredSince;?>">
<input type="hidden" name="id" value="<?echo $id;?>">
<div class="userData">
	<p>Vorname*</p>
	<input type="text" name="name" value="<?echo $name;?>">
	<p>Name*</p>
	<input type="text" name="surname" value="<?echo $surname;?>">
	<p>Straße</p>
	<input type="text" name="street" value="<?echo $street;?>">
	<div id="zip">
		<p>PLZ</p>
		<input type="text" name="zip" value="<?echo $zip;?>" maxlength="5">
	</div>
	<div id="place">
		<p>Ort</p>
		<input type="text" name="city" value="<?echo $city;?>">
	</div>
</div>
<div class="userData">
	<p>Email*</p>
	<input type="text" name="email" value="<?echo $email;?>">
	<p>Benutzername*</p>
	<input type="text" name="username" value="<?echo $username;?>">
	<p>Passwort*</p>
	<input type="password" name="password" id="passwordLength" value="<?echo $password;?>">
	<div style="float:left; width:100%;" class="radio">
		<p><input type="radio" name="gender" value="m" <?if($gender == "m") { echo "checked"; }?>>&nbsp;männlich*</p>
		<p><input type="radio" name="gender" value="f" <?if($gender == "f") { echo "checked"; }?>>&nbsp;weiblich*</p>
	</div>
	<p>* = Pflichtfelder</p>
	<p>&nbsp;</p>
	<button onClick="openProfile();" class="buttonSpaceRight">SCHLIESSEN</button>
	<button id="saveProfile">SPEICHERN</button>
</div>
</form>
Was mir auch auf gefallen ist, ist das focus() im IE9 auch nicht funktioniert. Ich habe zwar diesen Workarround gefunden "setTimeout(function() { document.getElementById('myInput').focus(); }, 10);" aber das ist auch nicht das wahre.
__________________
Erfahrungen vererben sich nicht jeder muss sie allein machen.

Geändert von joextra (13-01-2012 um 12:36 Uhr)
Mit Zitat antworten