Hi I have a simple form validation script which works fine in IE 6.0 and Opera 7.0. However it doesn't do anything in Mozilla 1.4 or Mozilla Firebird and I am not sure why.
I link to the script using an onsubmit event handler in the form tag:
<form method="post" action="someform.cgi" id="idname" onsubmit="return verify(this);" >
Within the head tags a script tag defines the location of the js file.
<script language="javascript" type="text/javascript" src="../scripts/somefile.js"></script>
Within the js file the script looks like this:
// This is the function that performs form verification. It is invoked
// from the onsubmit event handler. The handler should return whatever
// value this function returns.
function verify(f) {
var fname = -1;
var lname = -1;
var address = -1;
var postcode = -1;
var telephone = -1;
var region = -1;
var gender = -1;
var age = -1;
var faculty = -1;
var interest = -1;
var category = -1;
var experience = -1;
var membership = -1;
var contact = -1;
var issues = -1;
var msg = " ";
var empty_fields = "";
/* Verify first name is entered */
if (feedbackform.aafname.value != ""
{
fname = 1;
}
if (fname == -1) {
empty_fields += "first name" + "\n";
}
/* Verify last name is entered */
if (feedbackform.bblname.value != ""
{
lname = 1;
}
if (lname == -1) {
empty_fields += "last name" + "\n";
}
/* Verify address has been entered */
if (feedbackform.ccaddress.value != ""
{
address = 1;
}
if (address == -1) {
empty_fields += "address" + "\n";
}
/* Verify postcode has been entered */
if (feedbackform.ddpostcode.value != ""
{
postcode = 1;
}
if (postcode == -1) {
empty_fields += "postcode" + "\n";
}
/* Verify preferred telephone contact number has been entered */
if (feedbackform.ffphone.value != ""
{
telephone = 1;
}
if (telephone == -1) {
empty_fields += "telephone" + "\n";
}
/* Verify region has been entered */
if (feedbackform.ggregion.value != ""
{
region = 1;
}
if (region == -1) {
empty_fields += "region" + "\n";
}
/* Verify gender has been entered */
for (i=0; i<feedbackform.hhgender.length; i++) {
if (feedbackform.hhgender.checked) {
gender = 1;
}
}
if (gender == -1) {
empty_fields += "gender" + "\n";
}
/* Verify age has been entered */
for (i=0; i<feedbackform.iiage.length; i++) {
if (feedbackform.iiage.checked) {
age = 1;
}
}
if (age == -1) {
empty_fields += "age" + "\n";
}
/* Verify faculty has been entered */
if (feedbackform.jjfaculty.value != ""
{
faculty = 1;
}
if (faculty == -1) {
empty_fields += "faculty" + "\n";
}
/* Verify interest has been entered */
if (feedbackform.kkinterest.value != ""
{
interest = 1;
}
if (interest == -1) {
empty_fields += "main area of interest" + "\n";
}
/* Verify category has been entered */
if (feedbackform.lljobcategory.value != ""
{
category = 1;
}
if (category == -1) {
empty_fields += "job category" + "\n";
}
/* Verify 'summary of experience' has been entered */
if (feedbackform.mmsummaryofexperience.value != ""
{
experience = 1;
}
if (experience == -1) {
empty_fields += "summary of experience" + "\n";
}
/* Verify 'professional membership' has been entered */
if (feedbackform.nnprofessionalmembership.value != ""
{
membership = 1;
}
if (membership == -1) {
empty_fields += "membership of professional bodies" + "\n";
}
/* Verify 'how contacted' has been entered */
for (i=0; i<feedbackform.oohowcontactedbyseeker.length; i++) {
if (feedbackform.oohowcontactedbyseeker.checked) {
contact = 1;
}
}
if (contact == -1) {
empty_fields += "preference for contact by career seeker" + "\n";
}
/* Verify 'issues to talk about' has been entered */
for (i=0; i<feedbackform.qqissuestotalkabout.length; i++) {
if (feedbackform.qqissuestotalkabout.checked) {
issues = 1;
}
}
if (issues == -1) {
empty_fields += "issues to talk about" + "\n";
}
/* Check if any required fields are empty, if they are give an error message with the field name */
if (empty_fields !=""
{
msg +="______________________________________________________\n\n"
msg += "The form was not submitted because of the following error(s).\n";
msg += "- The following required field(s) are empty:" + "\n"
+empty_fields + "\n";
alert(msg);
/* Don't submit the form */
return false;
}
else {
/* Submit the form */
return true;
}
}
Does anyone know what the problem is - have I not used the correct DOM reference for Mozilla?
Thanks
Steve
I link to the script using an onsubmit event handler in the form tag:
<form method="post" action="someform.cgi" id="idname" onsubmit="return verify(this);" >
Within the head tags a script tag defines the location of the js file.
<script language="javascript" type="text/javascript" src="../scripts/somefile.js"></script>
Within the js file the script looks like this:
// This is the function that performs form verification. It is invoked
// from the onsubmit event handler. The handler should return whatever
// value this function returns.
function verify(f) {
var fname = -1;
var lname = -1;
var address = -1;
var postcode = -1;
var telephone = -1;
var region = -1;
var gender = -1;
var age = -1;
var faculty = -1;
var interest = -1;
var category = -1;
var experience = -1;
var membership = -1;
var contact = -1;
var issues = -1;
var msg = " ";
var empty_fields = "";
/* Verify first name is entered */
if (feedbackform.aafname.value != ""
fname = 1;
}
if (fname == -1) {
empty_fields += "first name" + "\n";
}
/* Verify last name is entered */
if (feedbackform.bblname.value != ""
lname = 1;
}
if (lname == -1) {
empty_fields += "last name" + "\n";
}
/* Verify address has been entered */
if (feedbackform.ccaddress.value != ""
address = 1;
}
if (address == -1) {
empty_fields += "address" + "\n";
}
/* Verify postcode has been entered */
if (feedbackform.ddpostcode.value != ""
postcode = 1;
}
if (postcode == -1) {
empty_fields += "postcode" + "\n";
}
/* Verify preferred telephone contact number has been entered */
if (feedbackform.ffphone.value != ""
telephone = 1;
}
if (telephone == -1) {
empty_fields += "telephone" + "\n";
}
/* Verify region has been entered */
if (feedbackform.ggregion.value != ""
region = 1;
}
if (region == -1) {
empty_fields += "region" + "\n";
}
/* Verify gender has been entered */
for (i=0; i<feedbackform.hhgender.length; i++) {
if (feedbackform.hhgender.checked) {
gender = 1;
}
}
if (gender == -1) {
empty_fields += "gender" + "\n";
}
/* Verify age has been entered */
for (i=0; i<feedbackform.iiage.length; i++) {
if (feedbackform.iiage.checked) {
age = 1;
}
}
if (age == -1) {
empty_fields += "age" + "\n";
}
/* Verify faculty has been entered */
if (feedbackform.jjfaculty.value != ""
faculty = 1;
}
if (faculty == -1) {
empty_fields += "faculty" + "\n";
}
/* Verify interest has been entered */
if (feedbackform.kkinterest.value != ""
interest = 1;
}
if (interest == -1) {
empty_fields += "main area of interest" + "\n";
}
/* Verify category has been entered */
if (feedbackform.lljobcategory.value != ""
category = 1;
}
if (category == -1) {
empty_fields += "job category" + "\n";
}
/* Verify 'summary of experience' has been entered */
if (feedbackform.mmsummaryofexperience.value != ""
experience = 1;
}
if (experience == -1) {
empty_fields += "summary of experience" + "\n";
}
/* Verify 'professional membership' has been entered */
if (feedbackform.nnprofessionalmembership.value != ""
membership = 1;
}
if (membership == -1) {
empty_fields += "membership of professional bodies" + "\n";
}
/* Verify 'how contacted' has been entered */
for (i=0; i<feedbackform.oohowcontactedbyseeker.length; i++) {
if (feedbackform.oohowcontactedbyseeker.checked) {
contact = 1;
}
}
if (contact == -1) {
empty_fields += "preference for contact by career seeker" + "\n";
}
/* Verify 'issues to talk about' has been entered */
for (i=0; i<feedbackform.qqissuestotalkabout.length; i++) {
if (feedbackform.qqissuestotalkabout.checked) {
issues = 1;
}
}
if (issues == -1) {
empty_fields += "issues to talk about" + "\n";
}
/* Check if any required fields are empty, if they are give an error message with the field name */
if (empty_fields !=""
msg +="______________________________________________________\n\n"
msg += "The form was not submitted because of the following error(s).\n";
msg += "- The following required field(s) are empty:" + "\n"
+empty_fields + "\n";
alert(msg);
/* Don't submit the form */
return false;
}
else {
/* Submit the form */
return true;
}
}
Does anyone know what the problem is - have I not used the correct DOM reference for Mozilla?
Thanks
Steve