I am designing a form and have used javascript in it. Got most of it working but I am having problems with the radio buttons. In the browser if I don’t press male or female it does not come up with alert message. Also I can press both male and female and it does not come up with alert to only press one.
Really stuck on how to fix this, any suggestions..please.
<script language=”javascript” src=”strfunc.js” type=”text/javascript”></script>
<script language=”javaScript” type=”text/javascript”>
<!–
function fieldcheck(fld)
{
fld.valid = false;
switch (fld.name)
{
case “firstname”: /* Firstname
var firstnameRegExp = /[^a-z ‘-]/i /* Firstname should consist of letters, space, hyphen and dash only
var firstname2RegExp = /[a-z]/i /* Firstname field should contain at least 1 letter
if (firstnameRegExp.test(fld.value) == false && firstname2RegExp.test(fld.value) == true)
{
fld.valid = true;
}
break;
case “lastname”: /* Lastname */
var lastnameRegExp = /[^a-z ‘-]/i /* Lastname should consist of letters, space, hyphen and dash only */
var lastname2RegExp = /[a-z]/i /* Lastname field should contain at least 1 letter */
if (lastnameRegExp.test(fld.value) == false && lastname2RegExp.test(fld.value) == true)
{
fld.valid = true;
}
break;
case “houseid”: /* House Name or Number */
var houseidRegExp = /[^a-z -‘0-9]/i /* House Name can consist of numbers, letters, hyphens or dashes */
var houseid2RegExp = /[a-z0-9]/i /* House Name field should contain at least 1 letter or number */
if (houseidRegExp.test(fld.value) == false && houseid2RegExp.test(fld.value) == true)
{
fld.valid = true;
}
break;
case “street”: /* Street */
var streetRegExp = /[^a-z -‘]/i /* Street should consist of letters, space, hyphen and dash only */
var street2RegExp = /[a-z]/i /* Street field should contain at least 1 letter */
if (streetRegExp.test(fld.value) == false && street2RegExp.test(fld.value) == true)
{
fld.valid = true;
}
break;
case “town”: /* Town */
var townRegExp = /[^a-z -‘]/i /* Town should consist of letters, space, hyphen and dash only */
var town2RegExp = /[a-z]/i /* Town field should contain at least 1 letter */
if (townRegExp.test(fld.value) == false && town2RegExp.test(fld.value) == true)
{
fld.valid = true;
}
break;
case “county”: /* County */
var countyRegExp = /[^a-z -‘]/i /* County should consist of letters, space, hyphen and dash only */
var county2RegExp = /[a-z]/i /* County field should contain at least 1 letter */
if (countyRegExp.test(fld.value) == false && county2RegExp.test(fld.value) == true)
{
fld.valid = true;
}
break;
case “postcode”: /* Postcode */
var postcodeRegExp = /[A-Z]d/ /* Postcode should consit of captial letters and digits only */
if (postcodeRegExp.test(fld.value) == true && fld.value.length < 9)
{
fld.valid = true;
}
break;
case “telephone”: /* Telephone */
var telephoneRegExp = /d{11}/ /* Telephone should be full UK number consisting of 11 digits starting with a 0 */
if (telephoneRegExp.test(fld.value) == true && fld.value.charAt(0) == 0)
{
fld.valid = true;
}
break;
case “email”: /* Email address */
var emailRegExp = /[@]/ /* Email should contain @ symbol */
var email2RegExp = /[.]/ /* Email should contain . symbol */
var email3RegExp = /[ ]/ /* Email must not contain spaces */
var email4RegExp = /[a-z]/i /* Email should contain at least 1 letter */
if (emailRegExp.test(fld.value) == true && email2RegExp.test(fld.value) == true &&
email3RegExp.test(fld.value) == false && email4RegExp.test(fld.value) == true)
{
fld.valid = true;
}
break;
case “radio_hidden”:
if (fld.value != “1”)/* radio male or female button should be checked*/
{
fld.valid = true;
}
break;
case “age”: /* age */
if (fld.value !=”” && fld.value >= 10 && fld.value <= 103) /* field must not be empty and contain number 10 to 103 */
{
fld.valid = true;
}
break;
}
}
function validate(frm)
{
for (i = 0; i < frm.length – 1; i++)
{
fieldcheck(frm.elements[i])
}
}
function runreport(frm)
{
var report_textheader = “=nn”+”Data Entry Validation Report—-nn”
var report_text = “”
if (frm.firstname.valid == false)
{
report_text += ” The Firstname field is required. Be sure you entered only letter characters.n”+”(Hyphens and apostrophes are OK.)nn”
}
if (frm.lastname.valid == false)
{
report_text += ” The Lastname field is required. Be sure you entered only letter characters.n”+”(Hyphens and apostrophes are OK.)nn”
}
if (frm.houseid.valid == false)
{
report_text += ” The House Name / Number field is required. Be sure you entered only letter numbers and/or characters.n”+” (Hyphens and apostrophes are OK.)nn”
}
if (frm.street.valid == false)
{
report_text += ” The Street field is required. Be sure you entered only letter characters.n”+”(Hyphens and apostrophes are OK.)nn”
}
if (frm.town.valid == false)
{
report_text += ” The Town field is required. Be sure you entered only letter characters.n”+”(Hyphens and apostrophes are OK.)nn”
}
if (frm.county.valid == false)
{
report_text += ” The County field is required. Be sure you entered only letter characters.n”+”(Hyphens and apostrophes are OK.)nn”
}
if (frm.postcode.valid == false)
{
report_text += ” The Postcode field is required. You must enter a UK formatted postcode.nn”
}
if (frm.telephone.valid == false)
{
report_text += ” The Telephone field is required. Be sure you enter complete UK telephone number including 0.nn”
}
if (frm.email.valid == false)
{
report_text += ” The Email field is required. Be sure you enter a valid email address. nn”
}
if (frm.radio_hidden.valid == false)
{
report_text += ” You must click a radio button male or female.nn”
}
if (frm.age.valid == false)
{
report_text += ” Please tell us your age. You must enter a value between 10 and 103.nn”
}
var report_footer = “============================================”
if (report_text == “”)
{
report_text += “All your entries are correct.nn”
alert(report_textheader + report_text + report_footer)
return true;
}
else
{
alert(report_textheader + report_text + report_footer)
return false;
}
}
//–>
</script>
</head>
<body bgcolor=”white” text =#0099FF>
<form action=”mailto:
method=”post”
name=”myform” onsubmit=”validate(this); return runreport(this);”>
Firstname:
<input type=”text” name=”firstname” size=”30″onblur=”trim(this);”><br>
<br>
Lastname:
<input type=”text” name=”lastname” size=”30″onblur=”trim(this);”><br>
<br>
House Name / Number:
<input type=”text” name=”houseid” size=”25″onblur=”trim(this);”><br>
<br>
Street:
<input type=”text” name=”street” size=”30″onblur=”trim(this);”><br>
<br>
Town:
<input type=”text” name=”town” size=”30″onblur=”trim(this);”><br>
<br>
County:
<input type=”text” name=”county” size=”30″onblur=”trim(this);”><br>
<br>
Postcode:
<input type=”text” name=”postcode” size=”30″onblur=”trim(this);ucit(this);”><br>
<br>
Telephone:
<input type=”text” name=”telephone” size=”35″onblur=”trim(this);”><br>
<br>
Email:
<input type=”text” name=”email” size=”50″onblur=”trim(this);lcit(this);”><br>
<br><u>Select Your gender:</u><br>
<input type=”radio” name=”male” value=”” onchange=”radio_hidden.value = 1;”> Male
<br>
<input type=”radio” name=”female” value=”” onchange=”radio_hidden.value = 1;”> Female
<br>
<input name=”radio_hidden” value=”” type=”hidden”>
<br>
What is your age: <input name=”age” size=”4″ maxlength=”3″ type=”text”> yrs<br>
<br><input type=”submit” name=”submit” value=”Submit Form”>
<input type=”reset” name=”reset” value=”Reset Form”>
</form>
</body>
</html>
:eek::eek::eek::eek: