Everything works fine when there is nothing in the email input, but as soon as I enter a “valid” email address, it doesn’t even fire the function because the alert is never triggered. Any help will be appreciated.
Javascript (js/registration.js):
JavaScript
x
48
48
1
function validateForm() {
2
var value1 = document.forms["regForm"]["username"].value;
3
var value2 = document.forms["regForm"]["pass1"].value;
4
var value3 = document.forms["regForm"]["pass2"].value;
5
var value4 = document.forms["regForm"]["email"].value;
6
var atpos = value4.indexOf("@");
7
var dotpos = value4.lastIndexOf(".");
8
var check = true;
9
10
if(value1 == null || value1 == "") {
11
$("#userCheck").html("<img src='images/ico_fail.png'/> Please enter a user name! (25 character limit)");
12
check = false;
13
} else $("#userCheck").html("<img src='images/ico_pass.png'/>");
14
15
if(value2 == null || value2 == "") {
16
$("#pass1Check").html("<img src='images/ico_fail.png'/> Please enter a password! (25 character limit)");
17
check = false;
18
} else {
19
if(value2.length < 8) {
20
$("#pass1Check").html("<img src='images/ico_fail.png'/> Password must be 8 to 25 characters");
21
check = false;
22
} else $("#pass1Check").html("<img src='images/ico_pass.png'/>");
23
}
24
25
if(value3 == null || value3 == "") {
26
$("#pass2Check").html("<img src='images/ico_fail.png'/> Please re-enter your password! (25 character limit)");
27
check = false;
28
} else {
29
if(value3 != value2) {
30
$("#pass2Check").html("<img src='images/ico_fail.png'/> Password does not match!");
31
check = false;
32
} else $("#pass2Check").html("<img src='images/ico_pass.png'/>");
33
}
34
35
if(value4 == null || value4 == "") {
36
$("#emailCheck").html("<img src='images/ico_fail.png'/> Please enter a valid email!");
37
check = false;
38
} else {
39
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
40
$("#emailCheck").html("<img src='images/ico_fail.png'/> Please enter a valid email!");
41
check = false;
42
} else $("#emailCheck").html("<img src='images/ico_pass.png'/>");
43
}
44
45
alert(check);
46
return check;
47
}
48
HTML:
JavaScript
1
17
17
1
<form name="regForm" method="post" action="" onsubmit="return validateForm();">
2
<input type="text" id="uName" name="username" size="25" maxlength="25" value=""/>
3
<span id="userCheck"> (25 character limit)</span></br>
4
<input type="password" id="password1" name="pass1" size="25" maxlength="25" value=""/>
5
<span id="pass1Check"> (25 character limit)</span></br>
6
<input type="password" id="password2" name="pass2" size="25" maxlength="25" value=""/>
7
<span id="pass2Check"></span></br>
8
<input type="text" name="email" size="25" value="" />
9
<span id="emailCheck"></span></br>
10
<input type="submit" name="submit" value="Register" />
11
<input type="hidden" name="perm" value="3" /> <!-- regular user -->
12
<input type="hidden" name="redirect" value="index.php" />
13
</form>
14
15
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
16
<script type="text/javascript" src="js/registration.js"></script>
17
Advertisement
Answer
JavaScript
1
2
1
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
2
You dont have x defined here. i think it should be value4.length