Forum Moderators: open

Message Too Old, No Replies

Help needed with form validation

Help needed with form validation

         

uk_martin

10:00 pm on Jul 18, 2004 (gmt 0)

10+ Year Member



Hello, and HELP! (please)

I have an application form which I have nearly finished, and can be seen here

[ukmartin.com...]

As you will see, the form is on the right, with the source code on the left.

At present, the form works with the exception of the UserName and Password fields. The form will detect wheter or not any characters have been typed in, but what I need is for the script to check if there are 6 characters in each. Ideally, checking that the 2 password entried are the same would be a bonus.

I cannot write JavaScript, but I have got the form to where it is by copying / pasting publicly available scripts and applying a bit of logic to some minor editing. This bit about checking for 6 characters is beyond me though.

Any help in finalising this project would be much appreciated.

Thanks

Martin

Teknorat

3:05 am on Jul 19, 2004 (gmt 0)

10+ Year Member



Get rid of the URL it's against the TOS.

uk_martin

5:50 am on Jul 19, 2004 (gmt 0)

10+ Year Member



OOps - sorry - I just wanted the problem to be "visible", and as I couldn't attach a file, I thought that this would show someone where the problem lies.

Where is the "Edit" button so that I can go back into the original post to delete the URL?

Teknorat

6:12 am on Jul 19, 2004 (gmt 0)

10+ Year Member



It's probably too late now- Private Message a Mod and tell them, also for everyone elses benefit :) :

<html>

<head>

<script language="JavaScript">
function Login(form) {
var username = form.username.value;
var password = form.password.value;
var server = form.server.value;
if (username && password && server) {
var htsite = "http://" + username + ":" + password + "@" + server;
window.location = htsite;
}
else {
alert("Please enter your username and password.");
}
}
</script>

<script Language="JavaScript">
function isEmailAddr(email)
{
var result = false;
var theStr = new String(email);
var index = theStr.indexOf("@");
if (index > 0)
{
var pindex = theStr.indexOf(".",index);
if ((pindex > index+1) && (theStr.length > pindex+1))
result = true;
}
return result;
}

function validRequired(formField,fieldLabel)
{
var result = true;

if (formField.value == "")
{
alert('Please enter your ' + fieldLabel +' ');
formField.focus();
result = false;
}

return result;
}

function allDigits(str)
{
return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
var result = true;

// Note: doesn't use regular expressions to avoid early Mac browser bugs
for (var i=0;i<str.length;i++)
if (charset.indexOf(str.substr(i,1))<0)
{
result = false;
break;
}

return result;
}

function validEmail(formField,fieldLabel,required)
{
var result = true;

if (required &&!validRequired(formField,fieldLabel))
result = false;

if (result && ((formField.value.length < 3) ¦¦!isEmailAddr(formField.value)) )
{
alert("Please enter a complete email address in the form: yourname@yourdomain.com");
formField.focus();
result = false;
}

return result;

}

function validNum(formField,fieldLabel,required)
{
var result = true;

if (required &&!validRequired(formField,fieldLabel))
result = false;

if (result)
{
if (!allDigits(formField.value))
{
alert('Please enter a number for the "' + fieldLabel +'" field.');
formField.focus();
result = false;
}
}

return result;
}

function validInt(formField,fieldLabel,required)
{
var result = true;

if (required &&!validRequired(formField,fieldLabel))
result = false;

if (result)
{
var num = parseInt(formField.value,10);
if (isNaN(num))
{
alert('Please enter a number for the "' + fieldLabel +'" field.');
formField.focus();
result = false;
}
}

return result;
}

function validDate(formField,fieldLabel,required)
{
var result = true;

if (required &&!validRequired(formField,fieldLabel))
result = false;

if (result)
{
var elems = formField.value.split("/");

result = (elems.length == 3); // should be three components

if (result)
{
var month = parseInt(elems[0],10);
var day = parseInt(elems[1],10);
var year = parseInt(elems[2],10);
result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
allDigits(elems[1]) && (day > 0) && (day < 32) &&
allDigits(elems[2]) && ((elems[2].length == 2) ¦¦ (elems[2].length == 4));
}

if (!result)
{
alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
formField.focus();
}
}

return result;
}

function validateForm(theForm)
{
// Customize these calls for your form

// Start ------->
if (!validRequired(theForm.fname,"Name"))
return false;

if (!validRequired(theForm.membership_number,"Club-Xtasia Membership Number"))
return false;

if (!validRequired(theForm.username,"6 character username, which should not include any spaces"))
return false;

if (!validRequired(theForm.pwd,"6 character password, which should not include any spaces"))
return false;

if (!validRequired(theForm.pwd2,"Retyped Password"))
return false;

if (!validEmail(theForm.email,"Email Address",true))
return false;

// <--------- End

return true;
}
</script>

<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body bgcolor="#eba31d" leftmargin="5" topmargin="0">
<p align="center"><br>
</p>
<div align="center">
<center>
<table border="0" cellpadding="10" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber7">
<tr>
<td width="4" height="416" align="left" valign="top">
<p CLASS="x3brown" align="justify">&nbsp;</p>
</td>
<td align="center" valign="top">
<div align="right">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber8">
<tr>
<td align="center">&nbsp;</td>
</tr>
<tr>
<td width="100%" height="378" align="center" valign="middle"> <FORM ACTION="/cgi-bin/acctman/acctman.pl" METHOD="POST" action="blformvalidate.htm" onsubmit="return validateForm(this)" id=form1 name=form1>
<input type="hidden" name="Subject" value="Membership Application">
<br> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2"><div align="center" class="x3bbrown">NOT
YET A MEMBER?</div></td>
</tr>
<tr>
<td colspan="2"><div align="justify">Apply for membership
here. Please complete and submit this form to us. We
will endeavour to send you a password once your details
have been checked.</div></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td width="72%"><span class="x3brown">1st Persons Name<font size="2">:</font></span></td>
<td width="28%"><span class="x3brown">
<INPUT NAME="fname" size="10">
</span></td>
</tr>
<tr>
<td><span class="x3brown">2nd Persons Name <font size="2">:</font></span></td>
<td><span class="x3brown"><font size="2">
<input type="text" name="lname" size="10">
</font></span></td>
</tr>
<tr>
<td><span class="x3brown">Membership No.<font size="2">:</font></span></td>
<td><span class="x3brown"><font size="2">
<INPUT TYPE="TEXT" NAME="membership_number" size="10">
</font></span></td>
</tr>
<tr>
<td><span class="x3brown">Expiry Date<font size="2">:</font></span></td>
<td><span class="x3brown"><font size="2">
<input type="text" name="exp" size="10">
</font></span></td>
</tr>
<tr class="x3bbrown">
<td colspan="2" class="x3bbrown"><div align="justify"><br>
Choose your Usernames and passwords - but remember,
they must be at least 6 characters long, and contain
no spaces. </div></td>
</tr>
<tr>
<td><p><span class="x3brown">Desired User Name:</span></p></td>
<td><span class="x3brown"><font size="2">
<INPUT NAME="username" size="10" maxlength="20">
</font></span></td>
</tr>
<tr>
<td><span class="x3brown">Desired Password:</span></td>
<td valign="top"> <INPUT TYPE="password" NAME="pwd" size="10" maxlength="20">
</td>
</tr>
<tr>
<td height="18"><span class="x3brown">Retype Password:</span><br>
</td>
<td valign="middle"> <INPUT TYPE="password" NAME="pwd2" size="10" maxlength="20"></td>
</tr>
<tr>
<td height="19" class="x3brown">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td height="19" class="x3brown">e-mail Address:<span class="x3brown"><font size="2">
</font></span></td>
<td><span class="x3brown"><font size="2">
<input type="TEXT" name="email" size="10">
</font></span></td>
</tr>
<tr>
<td height="8" colspan="2">&nbsp;</td>
</tr>
<tr>
<td height="19" colspan="2"><div align="center">
<input type="submit" value=" Submit " name="process">
<input type="reset" value=" Reset " name="B2">
</div></td>
</tr>
</table>

</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</center>
</div>

</body>

</html>

P.S. Welcome to Webmaster World!

uk_martin

7:14 am on Jul 19, 2004 (gmt 0)

10+ Year Member



Thanks - is PM the same as what is called a "sticky" message on here?