jeff5656 Posted November 12, 2009 Share Posted November 12, 2009 My form wont recognize required field. If I leave it blank it still processes. This script works elsewhere so don't know why: Here is at beginning: <script type="text/javascript" src="../consults/formvalidator.js"></script> <script type="text/javascript"> <!-- function check(formname, submitbutton) { var errors = ''; errors += checkText(formname, 'stopdate', 'Stop Date'); return checkThisForm(formname, submitbutton, errors); } //--> </script> Here's the form: <form name="makeinactive" method="post" action="commit.php"> <input type="text" name="stopdate" size="8" /> <input type="hidden" name ="edit_what" value="med-s"/> <input type="hidden" name ="med_id" value="<?php echo $row['med_id']; ?>"/> <input type="submit" value="Stop med" onClick="return check('makeinactive', this.name)" /> </form> Here is the js script which works in other forms I have so I think the problem lies above, but here it is for completeness sake // JavaScript Document <!-- Paste this code into an external JavaScript file named: formvalidator.js --> /* This script and many more are available free online at The JavaScript Source :: http://javascript.internet.com Created by: Amit Wadhwa :: http://amitwadhwa.fcpages.com/javascript.com/formvalidator.html */ function checkThisForm(formname, submitbutton, errors) { if (errors == '') { //eval(formname+'.'+submitbutton+'.disabled=true'); //eval('document.'+formname+'.submit()'); return true; } else { alert(errors); return false; } } function checkText(formname, textboxname, displaytext) { var localerror = ''; if(Trim(eval('document.'+formname+'.'+textboxname+'.value'))=='') { localerror = '- '+displaytext+' is Required.\n'; } else localerror = ''; return localerror; } function checkNum(formname, textboxname, displaytext) { var localerror = ''; if(isNaN(eval('document.'+formname+'.'+textboxname+'.value'))) { localerror = '- '+displaytext+' Should Be A Number With No Spaces.\n'; } else localerror = ''; return localerror; } function checkSpaces(formname, textboxname, displaytext) { var valid = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_'; // define valid characters var localerror = ''; if(!isValid(Trim(eval('document.'+formname+'.'+textboxname+'.value')), valid)) { localerror = '- '+displaytext+' Should Not Contain Spaces.\n'; } else localerror = ''; return localerror; } function checkSelect(formname, selectboxname, displaytext) { var localerror = ''; if(eval('document.'+formname+'.'+selectboxname+'.selectedIndex')==0) { localerror = '- '+displaytext+' is Required.\n'; } else localerror = ''; return localerror; } function getRadio(formname, radioname, displaytext) { for (var i=0; i < eval('document.'+formname+'.'+radioname+'.length'); i++) { if (eval('document.'+formname+'.'+radioname+'[i].checked')) { var rad_val = eval('document.'+formname+'.'+radioname+'[i].value'); return rad_val; } } } function checkRadio(formname, radioname, displaytext) { var localerror = ''; var rad_val = ''; for (var i=0; i < eval('document.'+formname+'.'+radioname+'.length'); i++) { //check every radio button by that name if (eval('document.'+formname+'.'+radioname+'[i].checked')) { //if it is checked rad_val += '-'; } else rad_val += ''; } if (rad_val=='') { localerror = '- '+displaytext+' is Required.\n'; } return localerror; } function autoComplete (field, select, property) { /*onKeyUp="autoComplete(this,this.form.selectboxname,'value',false)" - add this to textbox where you are typing*/ var found = false; for (var i = 0; i < select.options.length; i++) { if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) { found=true; break; } } if (found) { select.selectedIndex = i; } else { select.selectedIndex = -1; } if (field.createTextRange) { if (!found) { field.value=field.value.substring(0,field.value.length-1); return; } var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;"; if (cursorKeys.indexOf(event.keyCode+";") == -1) { var r1 = field.createTextRange(); var oldValue = r1.text; var newValue = found ? select.options[i][property] : oldValue; if (newValue != field.value) { field.value = newValue; var rNew = field.createTextRange(); rNew.moveStart('character', oldValue.length) ; rNew.select(); } } } } function Trim(s) { while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) { s = s.substring(1,s.length); } while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) { s = s.substring(0,s.length-1); } return s; } function isValid(string,allowed) { // var valid = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; // define valid characters for (var i=0; i< string.length; i++) { if (allowed.indexOf(string.charAt(i)) == -1) return false; } return true; } Quote Link to comment Share on other sites More sharing options...
KevinM1 Posted November 13, 2009 Share Posted November 13, 2009 I don't have time to go through all of it, but your submit button does not have a name. That may be causing the error. Also, that validation code is horrid. Eval isn't necessary for something like this, as you can simply pass element references into the appropriate functions, and access their attributes and tie into their events that way. I'm guessing (hoping) that you got it from a 3rd party. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.