Hello All,
I’m very new to javascript and after being told a number of times how poorly DW generates javascript for validating forms, I decided to jump right in and try to make my own validation. I’m working on a customer survey for a client and having some trouble validating the form once it’s filled out. I can get some fields to validate just fine (like regular <input type=“text”… /> ones) while some others are giving me trouble (namely, radio buttons). Anyway, here’s the javascript i’m using to validate a form called (creatively) “form.”
Of the code seen below, i re-used some that a colleague had given me that he wrote in a different project (basically he wrote the name/email/phone checker and i tried to mimic the code and adapt it to other fields that need validation).
function checkVisitDate() {
if (document.form.vMonth.value == "Month") {
alert("Please select the month of your visit");
return false;
}
if (document.form.vDay.value=="Day") {
alert("Please select the day of your visit");
return false;
}
return true;
}
function checkServer() {
if (document.form.serverName.value=="") {
alert("please include your server's name");
return false;
}
return true;
}
function checkVisitReason() {
if (document.form.visitReason.value=="") {
alert("Please state the occasion of your visit");
return false;
}
return true;
}
function checkRatings() {
if (document.form.foodRating.value=="") {
alert("Please rate our food quality");
return false;
}
if (document.form.serviceRating.value=="") {
alert("Please rate our service quality");
return false;
}
if (document.form.alcoholSelection.value=="") {
alert("Please rate our alcohol selection");
return false;
}
if (document.form.cleanliness.value=="") {
alert("Please rate our cleanliness");
return false;
}
if (document.form.orderAccuracy.value=="") {
alert("Please rate your order's accuracy");
return false;
}
if (document.form.overallRating.value=="") {
alert("Please rate your overall experience");
return false;
}
return true;
}
function checkName() {
if (document.form.VisitorName.value=="") {
alert("Please provide your name");
return false;
}
if (document.form.VisitorName.value.length < 2) {
alert("Please enter your real name");
return false;
}
return true;
}
function checkPhoneEmail() {
if ((document.form.VisitorEmail.value=="" || document.form.VisitorEmail.value==null) &&
(document.form.VisitorPhone.value=="" || document.form.VisitorPhone.value==null)) {
alert("You must fill in Phone or Email");
return false;
}
if ((document.form.VisitorEmail.value!="") && (document.form.VisitorEmail.value!=null)){
if (!ValidateEmail()){
return false;
}
}
if ((document.form.VisitorPhone.value!="") && (document.form.VisitorPhone.value!=null)){
if (!ValidatePhone()){
return false;
}
}
return true;
}
// ||---------Email Checker --------------||
//check to make sure email has a @ and a . and that they are in legit places
function echeck(str) {
var at="@"
var dot="."
var lat=str.indexOf(at)
var lstr=str.length
var ldot=str.indexOf(dot)
if (str.indexOf(at)==-1){
alert("Invalid E-mail Address")
return false
}
if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
alert("Invalid E-mail Address")
return false
}
if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
alert("Invalid E-mail Address")
return false
}
if (str.indexOf(at,(lat+1))!=-1){
alert("Invalid E-mail Address")
return false
}
if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
alert("Invalid E-mail Address")
return false
}
if (str.indexOf(dot,(lat+2))==-1){
alert("Invalid E-mail Address")
return false
}
if (str.indexOf(" ")!=-1){
alert("Invalid E-mail Address")
return false
}
return true
}
function ValidateEmail(){
var emailID=document.form.VisitorEmail
if ((emailID.value==null)||(emailID.value=="")){
alert("Please Enter a Valid Email Address")
emailID.focus()
return false
}
if (echeck(emailID.value)==false){
emailID.value=""
emailID.focus()
return false
}
return true
}
// ||-----------Phone Checker -----------||
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;
function isInteger(s)
{ var i;
for (i = 0; i < s.length; i++)
{
// Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
// All characters are numbers.
return true;
}
function trim(s)
{ var i;
var returnString = "";
// Search through string's characters one by one.
// If character is not a whitespace, append to returnString.
for (i = 0; i < s.length; i++)
{
// Check that current character isn't whitespace.
var c = s.charAt(i);
if (c != " ") returnString += c;
}
return returnString;
}
function stripCharsInBag(s, bag)
{ var i;
var returnString = "";
// Search through string's characters one by one.
// If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++)
{
// Check that current character isn't whitespace.
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function checkInternationalPhone(strPhone){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
function ValidatePhone(){
var Phone=document.form.VisitorPhone
if ((Phone.value==null)||(Phone.value=="")){
alert("Please Enter your Phone Number ex: 555-555-5555")
Phone.focus()
return false
}
if (checkInternationalPhone(Phone.value)==false){
alert("Please Enter a Valid Phone Number ex: 555-555-5555")
Phone.value=""
Phone.focus()
return false
}
return true
}
function CheckAll(){
if (checkVisitDate() && checkServer() && checkVisitReason() && checkRatings() && checkName() && checkPhoneEmail()) {
return true;
}
else
{
return false;
}
}
Any help for this newb is greatly appreciated!