Hjælp - Jeg kan ikke finde fejlen.
Jeg er ikke helt sikker på om problemet er JavaScript el. Reg.Exp. Jeg satser på det sidste.Jeg har slidt mine øjne firkantet og grædt inat, men jeg kan ikke løse følgende problem.
Funktionen skal validere en formular for om brugernavn, email og password har rette format.
Den ser således ud
<script type="text/javascript">
<!--
function check(frm) {
var f = new Array; // Field array
var m = new Array; // Message array
var error = "";
var skip_password_check = false;
// Field array
f[0] = frm['fString[user_name]'].value;
f[1] = frm['fString[user_email]'].value;
f[2] = frm['fString[user_group]'].options[frm['fString[user_group]'].selectedIndex].value;
f[10] = frm['fTemp[user_password]'].value;
f[11] = frm['fTemp[user_password2]'].value;
// Field title array
m[0] = "Users name";
m[1] = "Users email";
m[2] = "Usergroup";
m[10] = "Insert password";
m[11] = "Repeat password";
// Checking all fields
for (var i = 0; i < 3; i++) {
if ((f[i].length == 0) || (f[i] == 0)) {
error += ' - ' + m[i] + '\n';
}
}
// If error, returning an error message
if (error) {
alert('You miss to insert following data:\n\n' + error);
return false;
}
// Checking syntax of user name
var reg_userid = /^([a-zA-Z0-9_\-]{4,10})$/;
if (!reg_userid.test(f[0])) {
alert('"' + m[0] + '" do\'nt insert one or more of following criterias:\n\n'+
' - between 4 and 10 caracters long\n\n'+
' - Must only containing following characters: A-z, the numbers 0 - 9, \'-\' and \'_\'');
return false;
}
// Checking syntax of user email
var reg_em = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
if (!reg_em.test(f[1])) {
alert('The "E-mail" is not valid.');
return false;
}
if ((frm.str_id.value.length > 0) && (f[10].length == 0) && (f[11].length == 0))
skip_password_check = true;
// Checking syntax of password
var reg_pw = /^([A-z0-9]{4,10})$/;
if (!reg_pw.test(f[10]) && !skip_password_check) {
alert('"' + m[10] + '" do\'nt follow one or more of following criterias:\n\n'+
' - between 4 and 10 caracters long\n\n'+
' - Must only contain following characters: A-z and the numbers 0 - 9.');
return false;
}
// Checking password against password 2
if ((f[10] != f[11]) && !skip_password_check) {
alert('"' + m[10] + '" and "' + m[11] + '" is not alike!');
return false;
}
}
//-->
</script>
Funktionen kaldes således:
<form method="post" onsubmit="return check(this);">
Inputstatement er på følgende form
<td class="default"><input type="password" name="fTemp[user_password]" size="12" maxlength="10" class="field" /></td>
PLEASE - Hjælp mig
På forhånd tak
Christian
