Jump to content

Form Validation Script Has A Mixup I Don't See


Greywacke

Recommended Posts

hi there,the form validation script pops up with the following error in firefox:

Error: syntax errorSource File: http://localhost/fab/scripts/ajax_suppliers.jsLine: 178, Column: 2Source Code: case "Modify":
now i went to the line in question and can't seem to find any problems... here is that area of js along with the previous and following set of curly brackets:
			if (parseInt(document.form_suppliers.text_creditbalance.value) < 0) {				alert("Can't start a supplier account with a negative PAYG balance!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_contactposition.focus();				return false;			}			var poststr = "text_suppliername=" + encodeURIComponent(document.form_suppliers.text_suppliername.value) +						  "&text_supplierw3address=" + encodeURIComponent(document.form_suppliers.text_supplierw3address.value) +						  "&text_contactfirstname=" + encodeURIComponent(document.form_suppliers.text_contactfirstname.value) +						  "&text_contactsurname=" + encodeURIComponent(document.form_suppliers.text_contactsurname.value) +						  "&text_contactposition=" + encodeURIComponent(document.form_suppliers.text_contactposition.value) +						  "&text_contactemail=" + encodeURIComponent(document.form_suppliers.text_contactemail.value) +						  "&text_contacttelephonenumber=" + encodeURIComponent(parseInt(document.form_suppliers.text_contacttelephonenumber.value)) +						  "&text_creditbalance=" + encodeURIComponent(parseInt(document.form_suppliers.text_creditbalance.value));			makeRequest("POST", "scripts/ajax_suppliers.php?q=1", poststr);			document.form_suppliers.list_suppliers.options.length = 0;			document.form_suppliers.text_suppliername.value = "";			document.form_suppliers.text_supplierw3address.value = "";			document.form_suppliers.text_contactfirstname.value = "";			document.form_suppliers.text_contactsurname.value = "";			document.form_suppliers.text_contactposition.value = "";			document.form_suppliers.text_contactemail.value = "";			document.form_suppliers.text_contacttelephonenumber.value = "";			document.form_suppliers.text_creditbalance.value = "";			break;		case "Modify":			if (trim(document.form_suppliers.text_suppliername.value) == "") {				alert("Cannot create a blank supplier!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_suppliername.focus();				return false;			}

would someone please help me find the problem? any possible suggestions would be appreciated, thanks.

Link to comment
Share on other sites

And for incase the error is elsewhere in the function, heres the entire function:

// instantiate ajax requestsfunction ajaxRequest(obj) {	document.getElementById("ajaxbg").style.visibility = "visible";	switch (obj.value) {		case "Add":			if (trim(document.form_suppliers.text_suppliername.value) == "") {				alert("Cannot create a blank supplier!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_suppliername.focus();				return false;			}			for (var i = 0; i < document.form_suppliers.list_suppliers.options.length; i++) {				if (trim(document.form_suppliers.text_suppliername.value).toLowerCase() == trim(document.form_suppliers.list_suppliers.options[i].text).toLowerCase()) {					alert("Cannot create a duplicate supplier!");					document.getElementById("ajaxbg").style.visibility = "hidden";					document.form_suppliers.list_suppliers.focus();					return false;				}			}			if (trim(document.form_suppliers.text_supplierw3address.value) == "") {				if (!confirm("Are you sure you want to leave\nthe supplier's web address blank?")) {					document.getElementById("ajaxbg").style.visibility = "hidden";					document.form_suppliers.text_supplierw3address.focus();					return false;				}			}			if (trim(document.form_suppliers.text_contactfirstname.value) == "") {				alert("The contact's first name must be supplied!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_contactfirstname.focus();				return false;			}			if (trim(document.form_suppliers.text_contactsurname.value) == "") {				alert("The contact's surname must be supplied!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_contactsurname.focus();				return false;			}			if (trim(document.form_suppliers.text_contactposition.value) == "") {				alert("The contact's position must be supplied!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_contactposition.focus();				return false;			}			var eml = trim(document.form_suppliers.text_contactemail.value);			if (eml == "") {				if (!confirm("Are you sure you want to leave\nthe contact's e-mail address blank?")) {					document.getElementById("ajaxbg").style.visibility = "hidden";					document.form_suppliers.text_contactemail.focus();					return false;				}			} else {				var invalidChars = " /:,;'\"`~!?#$£€¥%^&*()+=";				for (var i = 0; i < invalidChars.length; i++) {					badChar = invalidChars.charAt(i);					if (eml.indexOf(badChar,0) != -1) {						alert("Invalid '"+badChar+"' character detected in e-mail!");						document.getElementById("ajaxbg").style.visibility = "hidden";						document.form_suppliers.text_contactemail.focus();						return false;					}					var atPos = eml.indexOf("@",1);					if (atPos==-1) {						alert("No @ symbol detected in e-mail!");						document.getElementById("ajaxbg").style.visibility = "hidden";						document.form_suppliers.text_contactemail.focus();						return false;					}					if (eml.indexOf("@",atPos+1)!=-1) {						alert("Duplicate @ symbol detected in e-mail!");						document.getElementById("ajaxbg").style.visibility = "hidden";						document.form_suppliers.text_contactemail.focus();						return false;					}					dotPos = enail.indexOf(".",atPos);					if (dotPos <= 0 || dotPos+3>eml.length) {						alert("Invalid . position detected in e-mail!");						document.getElementById("ajaxbg").style.visibility = "hidden";						document.form_suppliers.text_contactemail.focus();						return false;					}			}			if (trim(document.form_suppliers.text_contacttelephonenumber.value) == "") {				if (!confirm("Are you sure you want to leave\nthe contact's phone numberlol blank?")) {					document.getElementById("ajaxbg").style.visibility = "hidden";					document.form_suppliers.text_contacttelephonenumber.focus();					return false;				}			}			if (parseInt(document.form_suppliers.text_creditbalance.value) < 0) {				alert("Can't start a supplier account with a negative PAYG balance!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_contactposition.focus();				return false;			}			var poststr = "text_suppliername=" + encodeURIComponent(document.form_suppliers.text_suppliername.value) +						  "&text_supplierw3address=" + encodeURIComponent(document.form_suppliers.text_supplierw3address.value) +						  "&text_contactfirstname=" + encodeURIComponent(document.form_suppliers.text_contactfirstname.value) +						  "&text_contactsurname=" + encodeURIComponent(document.form_suppliers.text_contactsurname.value) +						  "&text_contactposition=" + encodeURIComponent(document.form_suppliers.text_contactposition.value) +						  "&text_contactemail=" + encodeURIComponent(document.form_suppliers.text_contactemail.value) +						  "&text_contacttelephonenumber=" + encodeURIComponent(parseInt(document.form_suppliers.text_contacttelephonenumber.value)) +						  "&text_creditbalance=" + encodeURIComponent(parseInt(document.form_suppliers.text_creditbalance.value));			makeRequest("POST", "scripts/ajax_suppliers.php?q=1", poststr);			document.form_suppliers.list_suppliers.options.length = 0;			document.form_suppliers.text_suppliername.value = "";			document.form_suppliers.text_supplierw3address.value = "";			document.form_suppliers.text_contactfirstname.value = "";			document.form_suppliers.text_contactsurname.value = "";			document.form_suppliers.text_contactposition.value = "";			document.form_suppliers.text_contactemail.value = "";			document.form_suppliers.text_contacttelephonenumber.value = "";			document.form_suppliers.text_creditbalance.value = "";			break;		case "Modify":			if (trim(document.form_suppliers.text_suppliername.value) == "") {				alert("Cannot create a blank supplier!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_suppliername.focus();				return false;			}			for (var i = 0; i < document.form_suppliers.list_suppliers.options.length; i++) {				if (trim(document.form_suppliers.text_suppliername.value).toLowerCase() == trim(document.form_suppliers.list_suppliers.options[i].text).toLowerCase()) {					alert("Cannot create a duplicate supplier!");					document.getElementById("ajaxbg").style.visibility = "hidden";					document.form_suppliers.list_suppliers.focus();					return false;				}			}			if (trim(document.form_suppliers.text_supplierw3address.value) == "") {				if (!confirm("Are you sure you want to leave\nthe supplier's web address blank?")) {					document.getElementById("ajaxbg").style.visibility = "hidden";					document.form_suppliers.text_supplierw3address.focus();					return false;				}			}			if (trim(document.form_suppliers.text_contactfirstname.value) == "") {				alert("The contact's first name must be supplied!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_contactfirstname.focus();				return false;			}			if (trim(document.form_suppliers.text_contactsurname.value) == "") {				alert("The contact's surname must be supplied!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_contactsurname.focus();				return false;			}			if (trim(document.form_suppliers.text_contactposition.value) == "") {				alert("The contact's position must be supplied!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_contactposition.focus();				return false;			}			var eml = trim(document.form_suppliers.text_contactemail.value);			if (eml == "") {				if (!confirm("Are you sure you want to leave\nthe contact's e-mail address blank?")) {					document.getElementById("ajaxbg").style.visibility = "hidden";					document.form_suppliers.text_contactemail.focus();					return false;				}			} else {				var invalidChars = " /:,;'\"`~!?#$£€¥%^&*()+=";				for (var i = 0; i < invalidChars.length; i++) {					badChar = invalidChars.charAt(i);					if (eml.indexOf(badChar,0) != -1) {						alert("Invalid '"+badChar+"' character detected in e-mail!");						document.getElementById("ajaxbg").style.visibility = "hidden";						document.form_suppliers.text_contactemail.focus();						return false;					}					var atPos = eml.indexOf("@",1);					if (atPos==-1) {						alert("No @ symbol detected in e-mail!");						document.getElementById("ajaxbg").style.visibility = "hidden";						document.form_suppliers.text_contactemail.focus();						return false;					}					if (eml.indexOf("@",atPos+1)!=-1) {						alert("Duplicate @ symbol detected in e-mail!");						document.getElementById("ajaxbg").style.visibility = "hidden";						document.form_suppliers.text_contactemail.focus();						return false;					}					dotPos = enail.indexOf(".",atPos);					if (dotPos <= 0 || dotPos+3>eml.length) {						alert("Invalid . position detected in e-mail!");						document.getElementById("ajaxbg").style.visibility = "hidden";						document.form_suppliers.text_contactemail.focus();						return false;					}			}			if (trim(document.form_suppliers.text_contacttelephonenumber.value) == "") {				if (!confirm("Are you sure you want to leave\nthe contact's phone numberlol blank?")) {					document.getElementById("ajaxbg").style.visibility = "hidden";					document.form_suppliers.text_contacttelephonenumber.focus();					return false;				}			}			if (parseInt(document.form_suppliers.text_creditbalance.value) < 0) {				alert("Can't start a supplier account with a negative PAYG balance!");				document.getElementById("ajaxbg").style.visibility = "hidden";				document.form_suppliers.text_contactposition.focus();				return false;			}			var poststr = "list_suppliers=" + encodeURIComponent(document.form_suppliers.list_suppliers.options[document.form_suppliers.list_suppliers.selectedIndex].value.split(",")[0]) +						  "&text_suppliername=" + encodeURIComponent(document.form_suppliers.text_suppliername.value) +						  "&text_supplierw3address=" + encodeURIComponent(document.form_suppliers.text_supplierw3address.value) +						  "&text_contactfirstname=" + encodeURIComponent(document.form_suppliers.text_contactfirstname.value) +						  "&text_contactsurname=" + encodeURIComponent(document.form_suppliers.text_contactsurname.value) +						  "&text_contactposition=" + encodeURIComponent(document.form_suppliers.text_contactposition.value) +						  "&text_contactemail=" + encodeURIComponent(document.form_suppliers.text_contactemail.value) +						  "&text_contacttelephonenumber=" + encodeURIComponent(parseInt(document.form_suppliers.text_contacttelephonenumber.value)) +						  "&text_creditbalance=" + encodeURIComponent(parseInt(document.form_suppliers.text_creditbalance.value));			alert(poststr);			makeRequest("POST", "scripts/ajax_suppliers.php?q=1", poststr);			document.form_suppliers.list_suppliers.options.length = 0;			document.form_suppliers.text_suppliername.value = "";			document.form_suppliers.text_supplierw3address.value = "";			document.form_suppliers.text_contactfirstname.value = "";			document.form_suppliers.text_contactsurname.value = "";			document.form_suppliers.text_contactposition.value = "";			document.form_suppliers.text_contactemail.value = "";			document.form_suppliers.text_contacttelephonenumber.value = "";			document.form_suppliers.text_creditbalance.value = "";			break;		case "Remove":			break;		default:			makeRequest("GET", "scripts/ajax_suppliers.php?q=0", "");			document.form_suppliers.list_suppliers.options.length = 0;			document.form_suppliers.text_suppliername.value = "";			document.form_suppliers.text_supplierw3address.value = "";			document.form_suppliers.text_contactfirstname.value = "";			document.form_suppliers.text_contactsurname.value = "";			document.form_suppliers.text_contactposition.value = "";			document.form_suppliers.text_contactemail.value = "";			document.form_suppliers.text_contacttelephonenumber.value = "";			document.form_suppliers.text_creditbalance.value = "";	}}

Link to comment
Share on other sites

okay it seems the problem is a missing } in the for loop with the email validation.

Link to comment
Share on other sites

If you paste your code in here:http://www.javascriptlint.com/online_lint.phpYou'll see it thinks the modify case is unreachable. I'm actually not sure why, I don't see the error. It probably sees the break and thinks it's unreachable, but since it's in a switch I don't understand what the problem is.edit: ah, right. that's an error.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...