ChrisML123 Posted April 2, 2009 Share Posted April 2, 2009 I'm making a javascript script to check that the user has filled in the form correctly. Two problems: 1. Email isn't validating properly. 2. I can't seem to get anything except name and email to validate - the other bits just dont do anything. You can see it in action (or not) here: http://names-not-numbers.co.uk/sponsor/ Here is my form <form name="form" id="form" class="form" action="payment.php" onsubmit="return validate(this)" method="post"> <table width="485" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="216" align="right"><label for="name">Full Name:</label></td> <td width="269"><input type="text" name="name" id="name" /></td> </tr> <tr> <td width="216" align="right"><label for="email">Email Address:</label></td> <td width="269"><input type="text" name="email" id="email" /></td> </tr> <tr> <td width="216" align="right"><label for="address">First line of address:</label></td> <td width="269"><input type="text" name="address" id="address" /></tr> <tr> <td align="right"><label for="address2">Second line of address:</label></td> <td><input type="text" name="address2" id="address2" /> </tr> <tr> <td align="right"><label for="city">City:</label></td> <td><input type="text" name="city" id="city" /> </tr> <tr> <td align="right"><label for="county">County:</label></td> <td><input type="text" name="county" id="county" /> </tr> <tr> <td align="right"><label for="postcode">Postcode:</label></td> <td><input type="text" name="postcode" id="postcode" /> </tr> <tr> <td align="right"><label>Are you eligible to pay gift aid?</label></td> <td><input type="radio" name="giftaid" value=1> Yes <input type="radio" name="giftaid" value=0> No <br> </tr> <tr> <td align="right"><label>Payment method</label></td> <td><input type="radio" name="payment" value="online">Online Payment <input type="radio" name="payment" value="cheque"> Cheque <input type="radio" name="payment" value="cash">Cash </tr> <tr> <td colspan="2" align="center"><INPUT name="send_form" type="submit" value="Submit"> </td> </tr> </table> An here's my script function validate(form) { var name = form.name.value; var email = form.email.value; var address = form.address.value; var address2 = form.address2.value; var city = form.city.value; var county = form.county.value; var payment = form.payment.value; var giftaid = form.giftaid.value; var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/; var emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/; var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim); if(name == "") { inlineMsg('name','You must enter your name.',2); return false; } if(!name.match(nameRegex)) { inlineMsg('name','You have entered an invalid name.',2); return false; } if(email == "") { inlineMsg('email','<strong>Error</strong><br />You must enter your email.',2); return false; } if(!email.match(emailRegex)) { inlineMsg('email','<strong>Error</strong><br />You have entered an invalid email.',2); return false; } if(address == "") { alert("I am here"); inlineMsg('address','Please enter your address.',2); return false; } if(city == "") { inlineMsg('city','Please enter a city.',2); return false; } if(county == "") { inlineMsg('county','You must enter a county.',2); return false; } if(payment == "") { inlineMsg('payment','You must select a payment method.',2); return false; } if(giftaid == "") { inlineMsg('giftaid','Please select one option.',2); return false; } return true; } // START OF MESSAGE SCRIPT // var MSGTIMER = 20; var MSGSPEED = 5; var MSGOFFSET = 3; var MSGHIDE = 3; // build out the divs, set attributes and call the fade function // function inlineMsg(target,string,autohide) { var msg; var msgcontent; if(!document.getElementById('msg')) { msg = document.createElement('div'); msg.id = 'msg'; msgcontent = document.createElement('div'); msgcontent.id = 'msgcontent'; document.body.appendChild(msg); msg.appendChild(msgcontent); msg.style.filter = 'alpha(opacity=0)'; msg.style.opacity = 0; msg.alpha = 0; } else { msg = document.getElementById('msg'); msgcontent = document.getElementById('msgcontent'); } msgcontent.innerHTML = string; msg.style.display = 'block'; var msgheight = msg.offsetHeight; var targetdiv = document.getElementById(target); targetdiv.focus(); var targetheight = targetdiv.offsetHeight; var targetwidth = targetdiv.offsetWidth; var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2); var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET; msg.style.top = topposition + 'px'; msg.style.left = leftposition + 'px'; clearInterval(msg.timer); msg.timer = setInterval("fadeMsg(1)", MSGTIMER); if(!autohide) { autohide = MSGHIDE; } window.setTimeout("hideMsg()", (autohide * 1000)); } // hide the form alert // function hideMsg(msg) { var msg = document.getElementById('msg'); if(!msg.timer) { msg.timer = setInterval("fadeMsg(0)", MSGTIMER); } } // face the message box // function fadeMsg(flag) { if(flag == null) { flag = 1; } var msg = document.getElementById('msg'); var value; if(flag == 1) { value = msg.alpha + MSGSPEED; } else { value = msg.alpha - MSGSPEED; } msg.alpha = value; msg.style.opacity = (value / 100); msg.style.filter = 'alpha(opacity=' + value + ')'; if(value >= 99) { clearInterval(msg.timer); msg.timer = null; } else if(value <= 1) { msg.style.display = "none"; clearInterval(msg.timer); } } // calculate the position of the element in relation to the left of the browser // function leftPosition(target) { var left = 0; if(target.offsetParent) { while(1) { left += target.offsetLeft; if(!target.offsetParent) { break; } target = target.offsetParent; } } else if(target.x) { left += target.x; } return left; } // calculate the position of the element in relation to the top of the browser window // function topPosition(target) { var top = 0; if(target.offsetParent) { while(1) { top += target.offsetTop; if(!target.offsetParent) { break; } target = target.offsetParent; } } else if(target.y) { top += target.y; } return top; } // preload the arrow // if(document.images) { arrow = new Image(7,80); arrow.src = "images/msg_arrow.gif"; } Link to comment https://forums.phpfreaks.com/topic/152197-javascript-validation-issues/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.