Gebruikersnaam check in javascript

Status
Niet open voor verdere reacties.

rikietje

Gebruiker
Lid geworden
17 nov 2010
Berichten
154
RegistratieScript

Ik gebruik op mijn webpagina (http://rikbeernink.nl/register.php)

Het volgende script om te controleren of alles gegevens juist zijn ingevuld.

[JS]echo "<script type='text/javascript'>
function formValidator(){
var voornaam = document.getElementById('voornaam');
var achternaam = document.getElementById('achternaam');
var email = document.getElementById('email');
var tussenvoegsel = document.getElementById('tussenvoegsel');
var username = document.getElementById('username');
var pass = document.getElementById('pass');
var pass2 = document.getElementById('pass2');

if( tussenvoegsel == ''){ tusssenvoegsel = 'geen' }

if(isAlphabet(voornaam, 'Vul alstublieft uw voornaam in.')){
if(isAlphabet(achternaam, 'Vul alstublieft uw achternaam in.')){
if(isAlphabetallowspace(tussenvoegsel, 'Vul alstublieft een geldig tussenvoegsels in. Als u geen tussenvoegsel heeft laat het veld dan leeg')){
if(emailValidator(email, 'Vul alstublieft een geldig e-mail adres in.')){
if(check_username(username, 4, 12)){
if(check_password(pass, 6, 18)){
if(check_double_password(pass, pass2)){
return true;
}
}
}
}
}
}
}
return false;
}


function isAlphabet(elem, helperMsg){
var alphaExp = /^[a-zA-Z]+$/;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}

function isAlphabetallowspace(elem, helperMsg){
var alphaExp = /^[a-zA-Z _ ' ' '']+$/;
if(elem.value == ''){
return true;
}

if(elem.value.match(alphaExp)){
return true;
}
else{
alert(helperMsg);
elem.focus();
return false;
}
}


function emailValidator(elem, helperMsg){
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
if(elem.value.match(emailExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
function check_username(elem, min, max){
var uInput = elem.value;
var alphaUsername = /^[a-zA-Z0-9 _ '']+$/;
if(elem.value.length >= 4){
if(elem.value.length <= 12){
if(elem.value.match(alphaUsername)){
return true;
}
else{
alert('Gebruikersnaam mag alleen letters cijfers en een underscore bevatten (_) ');
return false;
}
}
}else{
alert('De gebruikersnaam moet uit minimaal 4 en mag uit maximaal 12 karakters bestaan.');
elem.focus();
return false;
}
}

function check_password(elem, min, max){
var uInput = elem.value;
var alphaUsername = /^[a-zA-Z0-9 - _!@#$%,.]+$/;
if(uInput.length >= min && uInput.length <= max){
if(elem.value.match(alphaUsername)){
return true;
}
else{
alert('Wachtwoord mag alleen uit letters en cijfers bestaan de volgende tekens bestaan : - _!@#$%,. ');
return false;
}
}else{
alert('Het wachtwoord moet uit minimaal 6 en mag uit maximaal 16 karakters bestaan.');
elem.focus();
return false;
}
}
function check_double_password(pass, pass2){
if (pass.value == pass2.value){
return true;
}
else{
alert('De opgegeven wachtwoorden zijn niet gelijk aan elkaar')
return false;
}
}



</script>";






$_SESSION['id'] = $uni;


echo "<div class='div_main_login' >
<form action='' method='POST' onsubmit='return formValidator()' >
Voornaam : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type='text' name='voornaam' id='voornaam' /><br />

tussenvoegsel :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type='text' name='tussenvoegsel' id='tussenvoegsel' value=' ' /><br />

Achternaam :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type='text' name='achternaam' id='achternaam' /><br />

email :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type='text' name='email' id='email' /><br />

gebruikersnaam :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type='text' name='username' id='username' /><br />

wachtwoord :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type='password' name='pass' id='pass' /><BR />

wachtwoord (ter bevestiging) :&nbsp;&nbsp;<input type='password' name='pass2' id='pass2' /><br />
<input type='hidden' name='uni' value=$uni />

<div style='display: none;'><input type='text' name='geenreclame' id='geenreclame' /></div>
<br />
<input type='submit' value='Registreren' id='submit' />
</form></div>[/JS]


Het gaat hier echter mis bij het checken van de username, hij geeft constant aan dat de gebruikersnaam niet lang genoeg is, ondanks het feit dat dit wel zo is.

Waar gaat het mis?

Het gaat dan vooral om deze stukjes code denk ik.

[JS]function check_username(elem, min, max){
var uInput = elem.value;
var alphaUsername = /^[a-zA-Z0-9 _ '']+$/;
if(elem.value.length >= 4){
if(elem.value.length <= 12){
if(elem.value.match(alphaUsername)){
return true;
}
else{
alert('Gebruikersnaam mag alleen letters cijfers en een underscore bevatten (_) ');
return false;
}
}
}else{
alert('De gebruikersnaam moet uit minimaal 4 en mag uit maximaal 12 karakters bestaan.');
elem.focus();
return false;
}
}[/JS]

en

[JS]

var username = document.getElementById('username');
if(check_username(username, 4, 12)){[/JS]


Alvast bedankt!
 
Laatst bewerkt door een moderator:
Code:
 if(isAlphabet(voornaam, 'Vul alstublieft uw voornaam in.')){
  if(isAlphabet(achternaam, 'Vul alstublieft uw achternaam in.')){
   if(isAlphabetallowspace(tussenvoegsel, 'Vul alstublieft een geldig tussenvoegsels in. Als u geen tussenvoegsel heeft laat het veld dan leeg')){
    if(emailValidator(email, 'Vul alstublieft een geldig e-mail adres in.')){
     if(check_username(username, 4, 12)){
      if(check_password(pass, 6, 18)){
       if(check_double_password(pass, pass2)){
     return true;
    } else{return false;}
   }else{return false;}
  }else{return false;}
 }else{return false;}
  }else{return false;}
 }else{return false;}
 }else{return false;}
 
}

volgens mij heb je eerder zoiets nodig. Je hebt nergens een else statement. Dat betekent dat hij altijd als laatst een false return zal geven.
 
Nou, je min/max werken zowiezo niet omdat ze gehardcoded zijn. Ik zie verder het probleem niet zo eventjes, probeer dit eens?

Also, een quote:
This method returns an array of matches, or null if no match is found.
Om dus even extra zeker te zijn ook evnetjes een check daarvoor.
[JS]function check_username(elem, min, max)
{
var uInput = elem.value;
var alphaUsername = /^[a-zA-Z0-9 _ '']+$/;

alert('input: "' + uInput + '"\nlengte: ' + uInput.length); // test eens eventjes

if(uInput.length >= min)
{
if(uInput.length <= max)
{
if(elem.value.match(alphaUsername) != null)
{
return true;
}else{
alert('Gebruikersnaam mag alleen letters cijfers en een underscore bevatten (_) ');
return false;
}
}
}else{
alert('De gebruikersnaam moet uit minimaal 4 en mag uit maximaal 12 karakters bestaan.');
elem.focus();
return false;
}
}[/JS]
 
Laatst bewerkt:
Bedankt voor je reactie That Guy,

Ik had hem de variabele laten Alert() en.

Maar er kwam niks uit.

Dus de variabele werd niet goed doorgegeven. Ik heb vervolgens bij het form het ID van de gebruikersnaam gewijzigd naar id='gebruikersnaam' en toen in het javascript deze ook gebruikt bij getElementById .

Nu werkt hij prima.

Bedankt voor de superhulp
(alweer)

!!!!!:)
 
Dit soort controles dienen in PHP of ASP te worden uitgevoerd... Niet in een makkelijk uit te schakelen browsertaal ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan