PageSourceSearch

https://top10newgames.com/contact/scripts/gen_validatorv31.js

js top10newgames.com collected 2026-10-01 14:22:37 UTC 19,922 bytes, 813 lines download raw bytes

1/*
2  -------------------------------------------------------------------------
3            JavaScript Form Validator (gen_validatorv31.js)
4              Version 3.1
5   Copyright (C) 2003-2008 JavaScript-Coder.com. All rights reserved.
6   You can freely use this script in your Web pages.
7   You may adapt this script for your own needs, provided these opening credit
8    lines are kept intact.
9      
10   The Form validation script is distributed free from JavaScript-Coder.com
11   For updates, please visit:
12   http://www.javascript-coder.com/html-form/javascript-form-validation.phtml
13   
14   Questions & comments please send to [email protected]
15  -------------------------------------------------------------------------  
16*/
17function Validator(frmname)
18{
19  this.formobj=document.forms[frmname];
20   if(!this.formobj)
21   {
22     alert("Error: couldnot get Form object "+frmname);
23      return;
24   }
25   if(this.formobj.onsubmit)
26   {
27    this.formobj.old_onsubmit = this.formobj.onsubmit;
28    this.formobj.onsubmit=null;
29   }
30   else
31   {
32    this.formobj.old_onsubmit = null;
33   }
34   this.formobj._sfm_form_name=frmname;
35   this.formobj.onsubmit=form_submit_handler;
36   this.addValidation = add_validation;
37   this.setAddnlValidationFunction=set_addnl_vfunction;
38   this.clearAllValidations = clear_all_validations;
39    this.disable_validations = false;//new
40    document.error_disp_handler = new sfm_ErrorDisplayHandler();
41    this.EnableOnPageErrorDisplay=validator_enable_OPED;
42   this.EnableOnPageErrorDisplaySingleBox=validator_enable_OPED_SB;
43    this.show_errors_together=true;
44    this.EnableMsgsTogether=sfm_enable_show_msgs_together;
45}
46function set_addnl_vfunction(functionname)
47{
48  this.formobj.addnlvalidation = functionname;
49}
50function sfm_enable_show_msgs_together()
51{
52    this.show_errors_together=true;
53    this.formobj.show_errors_together=true;
54}
55function clear_all_validations()
56{
57   for(var itr=0;itr < this.formobj.elements.length;itr++)
58   {
59      this.formobj.elements[itr].validationset = null;
60   }
61}
62function form_submit_handler()
63{
64   var bRet = true;
65    document.error_disp_handler.clear_msgs();
66   for(var itr=0;itr < this.elements.length;itr++)
67   {
68      if(this.elements[itr].validationset &&
69      !this.elements[itr].validationset.validate())
70      {
71        bRet = false;
72      }
73        if(!bRet && !this.show_errors_together)
74        {
75          break;
76        }
77   }
78    if(!bRet)
79    {
80      document.error_disp_handler.FinalShowMsg();
81      return false;
82    }
83
84   if(this.addnlvalidation)
85   {
86     str =" var ret = "+this.addnlvalidation+"()";
87     eval(str);
88    if(!ret) return ret;
89   }
90   return true;
91}
92function add_validation(itemname,descriptor,errstr)
93{
94   var condition = null;
95   if(arguments.length > 3)
96   {
97    condition = arguments[3]; 
98   }
99  if(!this.formobj)
100   {
101      alert("Error: The form object is not set properly");
102      return;
103   }//if
104   var itemobj = this.formobj[itemname];
105    if(itemobj.length && isNaN(itemobj.selectedIndex) )
106    //for radio button; don't do for 'select' item
107   {
108      itemobj = itemobj[0];
109   }  
110  if(!itemobj)
111   {
112      alert("Error: Couldnot get the input object named: "+itemname);
113      return;
114   }
115   if(!itemobj.validationset)
116   {
117      itemobj.validationset = new ValidationSet(itemobj,this.show_errors_together);
118   }
119   itemobj.validationset.add(descriptor,errstr,condition);
120    itemobj.validatorobj=this;
121}
122function validator_enable_OPED()
123{
124    document.error_disp_handler.EnableOnPageDisplay(false);
125}
126
127function validator_enable_OPED_SB()
128{
129   document.error_disp_handler.EnableOnPageDisplay(true);
130}
131function sfm_ErrorDisplayHandler()
132{
133  this.msgdisplay = new AlertMsgDisplayer();
134  this.EnableOnPageDisplay= edh_EnableOnPageDisplay;
135  this.ShowMsg=edh_ShowMsg;
136  this.FinalShowMsg=edh_FinalShowMsg;
137  this.all_msgs=new Array();
138  this.clear_msgs=edh_clear_msgs;
139}
140function edh_clear_msgs()
141{
142    this.msgdisplay.clearmsg(this.all_msgs);
143    this.all_msgs = new Array();
144}
145function edh_FinalShowMsg()
146{
147    this.msgdisplay.showmsg(this.all_msgs);
148}
149function edh_EnableOnPageDisplay(single_box)
150{
151   if(true == single_box)
152   {
153      this.msgdisplay = new SingleBoxErrorDisplay();
154   }
155   else
156   {
157      this.msgdisplay = new DivMsgDisplayer();     
158   }
159}
160function edh_ShowMsg(msg,input_element)
161{
162   
163   var objmsg = new Array();
164   objmsg["input_element"] = input_element;
165   objmsg["msg"] =  msg;
166   this.all_msgs.push(objmsg);
167}
168function AlertMsgDisplayer()
169{
170  this.showmsg = alert_showmsg;
171  this.clearmsg=alert_clearmsg;
172}
173function alert_clearmsg(msgs)
174{
175
176}
177function alert_showmsg(msgs)
178{
179    var whole_msg="";
180    var first_elmnt=null;
181    for(var m in msgs)
182    {
183        if(null == first_elmnt)
184        {
185            first_elmnt = msgs[m]["input_element"];
186        }
187        whole_msg += msgs[m]["msg"] + "\n";
188    }
189   
190    alert(whole_msg);
191
192    if(null != first_elmnt)
193    {
194        first_elmnt.focus();
195    }
196}
197function sfm_show_error_msg(msg,input_elmt)
198{
199    document.error_disp_handler.ShowMsg(msg,input_elmt);
200}
201function SingleBoxErrorDisplay()
202{
203 this.showmsg=sb_div_showmsg;
204 this.clearmsg=sb_div_clearmsg;
205}
206
207function sb_div_clearmsg(msgs)
208{
209   var divname = form_error_div_name(msgs);
210   show_div_msg(divname,"");
211}
212
213function sb_div_showmsg(msgs)
214{
215   var whole_msg="<ul>\n";
216   for(var m in msgs)
217    {
218        whole_msg += "<li>" + msgs[m]["msg"] + "</li>\n";
219    }
220   whole_msg += "</ul>";
221   var divname = form_error_div_name(msgs);
222   show_div_msg(divname,whole_msg);
223}
224function form_error_div_name(msgs)
225{
226   var input_element= null;
227
228   for(var m in msgs)
229   {
230    input_element = msgs[m]["input_element"];
231    if(input_element){break;}
232   }
233
234   var divname ="";
235   if(input_element)
236   {
237    divname = input_element.form._sfm_form_name + "_errorloc";
238   }
239
240   return divname;
241}
242function DivMsgDisplayer()
243{
244 this.showmsg=div_showmsg;
245 this.clearmsg=div_clearmsg;
246}
247function div_clearmsg(msgs)
248{
249    for(var m in msgs)
250    {
251        var divname = element_div_name(msgs[m]["input_element"]);
252        show_div_msg(divname,"");
253    }
254}
255function element_div_name(input_element)
256{
257  var divname = input_element.form._sfm_form_name + "_" + 
258                   input_element.name + "_errorloc";
259
260  divname = divname.replace(/[\[\]]/gi,"");
261
262  return divname;
263}
264function div_showmsg(msgs)
265{
266    var whole_msg;
267    var first_elmnt=null;
268    for(var m in msgs)
269    {
270        if(null == first_elmnt)
271        {
272            first_elmnt = msgs[m]["input_element"];
273        }
274        var divname = element_div_name(msgs[m]["input_element"]);
275        show_div_msg(divname,msgs[m]["msg"]);
276    }
277    if(null != first_elmnt)
278    {
279        first_elmnt.focus();
280    }
281}
282function show_div_msg(divname,msgstring)
283{
284   if(divname.length<=0) return false;
285
286   if(document.layers)
287   {
288      divlayer = document.layers[divname];
289        if(!divlayer){return;}
290      divlayer.document.open();
291      divlayer.document.write(msgstring);
292      divlayer.document.close();
293   }
294   else
295   if(document.all)
296   {
297      divlayer = document.all[divname];
298        if(!divlayer){return;}
299      divlayer.innerHTML=msgstring;
300   }
301   else
302   if(document.getElementById)
303   {
304      divlayer = document.getElementById(divname);
305        if(!divlayer){return;}
306      divlayer.innerHTML =msgstring;
307   }
308   divlayer.style.visibility="visible";   
309   return false;
310}
311function ValidationDesc(inputitem,desc,error,condition)
312{
313  this.desc=desc;
314   this.error=error;
315   this.itemobj = inputitem;
316   this.condition = condition;
317   this.validate=vdesc_validate;
318}
319function vdesc_validate()
320{
321   if(this.condition != null )
322   {
323      if(!eval(this.condition))
324      {
325         return true;
326      }
327   }
328   if(!validateInput(this.desc,this.itemobj,this.error))
329   {
330      this.itemobj.validatorobj.disable_validations=true;
331      this.itemobj.focus();
332      return false;
333   }
334   return true;
335}
336function ValidationSet(inputitem,msgs_together)
337{
338    this.vSet=new Array();
339   this.add= add_validationdesc;
340   this.validate= vset_validate;
341   this.itemobj = inputitem;
342    this.msgs_together = msgs_together;
343}
344function add_validationdesc(desc,error,condition)
345{
346  this.vSet[this.vSet.length]= 
347  new ValidationDesc(this.itemobj,desc,error,condition);
348}
349function vset_validate()
350{
351    var bRet = true;
352    for(var itr=0;itr<this.vSet.length;itr++)
353    {
354        bRet = bRet && this.vSet[itr].validate();
355        if(!bRet && !this.msgs_together)
356        {
357            break;
358        }
359    }
360    return bRet;
361}
362function validateEmail(email)
363{
364    var splitted = email.match("^(.+)@(.+)$");
365    if(splitted == null) return false;
366    if(splitted[1] != null )
367    {
368      var regexp_user=/^\"?[\w-_\.]*\"?$/;
369      if(splitted[1].match(regexp_user) == null) return false;
370    }
371    if(splitted[2] != null)
372    {
373      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
374      if(splitted[2].match(regexp_domain) == null) 
375      {
376       var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
377       if(splitted[2].match(regexp_ip) == null) return false;
378      }// if
379      return true;
380    }
381return false;
382}
383
384function IsCheckSelected(objValue,chkValue)
385{
386    var selected=false;
387   var objcheck = objValue.form.elements[objValue.name];
388    if(objcheck.length)
389   {
390      var idxchk=-1;
391      for(var c=0;c < objcheck.length;c++)
392      {
393         if(objcheck[c].value == chkValue)
394         {
395           idxchk=c;
396          break;
397         }//if
398      }//for
399      if(idxchk>= 0)
400      {
401        if(objcheck[idxchk].checked=="1")
402        {
403          selected=true;
404        }
405      }//if
406   }
407   else
408   {
409      if(objValue.checked == "1")
410      {
411         selected=true;
412      }//if
413   }//else  
414
415   return selected;
416}
417function TestDontSelectChk(objValue,chkValue,strError)
418{
419   var pass = true;
420   pass = IsCheckSelected(objValue,chkValue)?false:true;
421
422   if(pass==false)
423   {
424     if(!strError || strError.length ==0) 
425        { 
426         strError = "Can't Proceed as you selected "+objValue.name;  
427        }//if          
428     sfm_show_error_msg(strError,objValue);
429     
430   }
431    return pass;
432}
433function TestShouldSelectChk(objValue,chkValue,strError)
434{
435   var pass = true;
436
437   pass = IsCheckSelected(objValue,chkValue)?true:false;
438
439   if(pass==false)
440   {
441     if(!strError || strError.length ==0) 
442        { 
443         strError = "You should select"+objValue.name;  
444        }//if          
445     sfm_show_error_msg(strError,objValue);
446     
447   }
448    return pass;
449}
450function TestRequiredInput(objValue,strError)
451{
452 var ret = true;
453    if(eval(objValue.value.length) == 0) 
454    { 
455       if(!strError || strError.length ==0) 
456       { 
457         strError = objValue.name + " : Required Field"; 
458       }//if 
459       sfm_show_error_msg(strError,objValue); 
460       ret=false; 
461    }//if 
462return ret;
463}
464function TestMaxLen(objValue,strMaxLen,strError)
465{
466 var ret = true;
467    if(eval(objValue.value.length) > eval(strMaxLen)) 
468    { 
469      if(!strError || strError.length ==0) 
470      { 
471        strError = objValue.name + " : "+ strMaxLen +" characters maximum "; 
472      }//if 
473      sfm_show_error_msg(strError,objValue); 
474      ret = false; 
475    }//if 
476return ret;
477}
478function TestMinLen(objValue,strMinLen,strError)
479{
480 var ret = true;
481    if(eval(objValue.value.length) <  eval(strMinLen)) 
482    { 
483      if(!strError || strError.length ==0) 
484      { 
485        strError = objValue.name + " : " + strMinLen + " characters minimum  "; 
486      }//if               
487      sfm_show_error_msg(strError,objValue); 
488      ret = false;   
489    }//if 
490return ret;
491}
492function TestInputType(objValue,strRegExp,strError,strDefaultError)
493{
494   var ret = true;
495
496    var charpos = objValue.value.search(strRegExp); 
497    if(objValue.value.length > 0 &&  charpos >= 0) 
498    { 
499     if(!strError || strError.length ==0) 
500      { 
501        strError = strDefaultError;
502      }//if 
503      sfm_show_error_msg(strError,objValue); 
504      ret = false; 
505    }//if 
506 return ret;
507}
508function TestEmail(objValue,strError)
509{
510var ret = true;
511     if(objValue.value.length > 0 && !validateEmail(objValue.value)   ) 
512     { 
513       if(!strError || strError.length ==0) 
514       { 
515          strError = objValue.name+": Enter a valid Email address "; 
516       }//if                                               
517       sfm_show_error_msg(strError,objValue); 
518       ret = false; 
519     }//if 
520return ret;
521}
522function TestLessThan(objValue,strLessThan,strError)
523{
524var ret = true;
525     if(isNaN(objValue.value)) 
526     { 
527       sfm_show_error_msg(objValue.name +": Should be a number ",objValue); 
528       ret = false; 
529     }//if 
530     else
531     if(eval(objValue.value) >=  eval(strLessThan)) 
532     { 
533       if(!strError || strError.length ==0) 
534       { 
535         strError = objValue.name + " : value should be less than "+ strLessThan; 
536       }//if               
537       sfm_show_error_msg(strError,objValue); 
538       ret = false;                 
539      }//if   
540return ret;          
541}
542function TestGreaterThan(objValue,strGreaterThan,strError)
543{
544var ret = true;
545     if(isNaN(objValue.value)) 
546     { 
547       sfm_show_error_msg(objValue.name+": Should be a number ",objValue); 
548       ret = false; 
549     }//if 
550    else
551     if(eval(objValue.value) <=  eval(strGreaterThan)) 
552      { 
553        if(!strError || strError.length ==0) 
554        { 
555          strError = objValue.name + " : value should be greater than "+ strGreaterThan; 
556        }//if               
557        sfm_show_error_msg(strError,objValue);  
558        ret = false;
559      }//if  
560return ret;           
561}
562function TestRegExp(objValue,strRegExp,strError)
563{
564var ret = true;
565    if( objValue.value.length > 0 && 
566        !objValue.value.match(strRegExp) ) 
567    { 
568      if(!strError || strError.length ==0) 
569      { 
570        strError = objValue.name+": Invalid characters found "; 
571      }//if                                                               
572      sfm_show_error_msg(strError,objValue); 
573      ret = false;                   
574    }//if 
575return ret;
576}
577function TestDontSelect(objValue,dont_sel_value,strError)
578{
579var ret = true;
580     if(objValue.value == null) 
581     { 
582       sfm_show_error_msg("Error: dontselect command for non-select Item",objValue); 
583       ret = false; 
584     } 
585    else
586     if(objValue.value == dont_sel_value) 
587     { 
588      if(!strError || strError.length ==0) 
589       { 
590        strError = objValue.name+": Please Select one option "; 
591       }//if                                                               
592       sfm_show_error_msg(strError,objValue); 
593       ret =  false;                                   
594      } 
595return ret;
596}
597function TestSelectOneRadio(objValue,strError)
598{
599   var objradio = objValue.form.elements[objValue.name];
600   var one_selected=false;
601   for(var r=0;r < objradio.length;r++)
602   {
603     if(objradio[r].checked == "1")
604     {
605      one_selected=true;
606      break;
607     }
608   }
609   if(false == one_selected)
610   {
611      if(!strError || strError.length ==0) 
612       {
613       strError = "Please select one option from "+objValue.name;
614      }  
615     sfm_show_error_msg(strError,objValue);
616   }
617return one_selected;
618}
619
620function TestFileExtension(objValue,cmdvalue,strError)
621{
622    var ret=false;
623    var found=false;
624
625    if(objValue.value.length <= 0)
626    {//The 'required' validation is not done here
627        return true;
628    }
629   
630    var extns = cmdvalue.split(";");
631    for(var i=0;i < extns.length;i++)
632    {
633        ext = objValue.value.substr(objValue.value.length - extns[i].length,extns[i].length);
634        ext = ext.toLowerCase();
635        if(ext == extns[i])
636        {
637            found=true;break;
638        }
639    }
640    if(!found)
641    {
642       if(!strError || strError.length ==0) 
643       { 
644         strError = objValue.name + " allowed file extensions are: "+cmdvalue; 
645       }//if 
646       sfm_show_error_msg(strError,objValue); 
647       ret=false;        
648    }
649    else
650    {
651        ret=true;
652    }
653    return ret;
654}
655
656
657function validateInput(strValidateStr,objValue,strError) 
658{ 
659    var ret = true;
660    var epos = strValidateStr.search("="); 
661    var  command  = ""; 
662    var  cmdvalue = ""; 
663    if(epos >= 0) 
664    { 
665     command  = strValidateStr.substring(0,epos); 
666     cmdvalue = strValidateStr.substr(epos+1); 
667    } 
668    else 
669    { 
670     command = strValidateStr; 
671    } 
672    switch(command) 
673    { 
674        case "req": 
675        case "required": 
676         { 
677         ret = TestRequiredInput(objValue,strError)
678           break;             
679         }//case required 
680        case "maxlength": 
681        case "maxlen": 
682          { 
683          ret = TestMaxLen(objValue,cmdvalue,strError)
684             break; 
685          }//case maxlen 
686        case "minlength": 
687        case "minlen": 
688           { 
689          ret = TestMinLen(objValue,cmdvalue,strError)
690             break; 
691            }//case minlen 
692        case "alnum": 
693        case "alphanumeric": 
694           { 
695            ret = TestInputType(objValue,"[^A-Za-z0-9]",strError, 
696                  objValue.name+": Only alpha-numeric characters allowed ");
697            break; 
698           }
699        case "alnum_s": 
700        case "alphanumeric_space": 
701           { 
702            ret = TestInputType(objValue,"[^A-Za-z0-9\\s]",strError, 
703                  objValue.name+": Only alpha-numeric characters and space allowed ");
704            break; 
705           }         
706        case "num": 
707        case "numeric": 
708           { 
709                ret = TestInputType(objValue,"[^0-9]",strError, 
710                  objValue.name+": Only digits allowed ");
711                break;               
712           }
713        case "alphabetic": 
714        case "alpha": 
715           { 
716                ret = TestInputType(objValue,"[^A-Za-z]",strError, 
717                  objValue.name+": Only alphabetic characters allowed ");
718                break; 
719           }
720        case "alphabetic_space": 
721        case "alpha_s": 
722           { 
723                ret = TestInputType(objValue,"[^A-Za-z\\s]",strError, 
724                  objValue.name+": Only alphabetic characters and space allowed ");
725                break; 
726           }
727        case "email": 
728          { 
729            ret = TestEmail(objValue,strError);
730               break; 
731          }
732        case "lt": 
733        case "lessthan": 
734         { 
735            ret = TestLessThan(objValue,cmdvalue,strError);
736              break; 
737         }
738        case "gt": 
739        case "greaterthan": 
740         { 
741         ret = TestGreaterThan(objValue,cmdvalue,strError);
742            break; 
743         }//case greaterthan 
744        case "regexp": 
745         { 
746         ret = TestRegExp(objValue,cmdvalue,strError);
747           break; 
748         }
749        case "dontselect": 
750         { 
751          ret = TestDontSelect(objValue,cmdvalue,strError)
752             break; 
753         }
754      case "dontselectchk":
755      {
756         ret = TestDontSelectChk(objValue,cmdvalue,strError)
757         break;
758      }
759      case "shouldselchk":
760      {
761         ret = TestShouldSelectChk(objValue,cmdvalue,strError)
762         break;
763      }
764      case "selone_radio":
765      {
766         ret = TestSelectOneRadio(objValue,strError);
767          break;
768      }
769      case "file_extn":
770      {
771         ret = TestFileExtension(objValue,cmdvalue,strError);
772         break;
773      }      
774    }//switch 
775   return ret;
776}
777function VWZ_IsListItemSelected(listname,value)
778{
779 for(var i=0;i < listname.options.length;i++)
780 {
781  if(listname.options[i].selected == true &&
782   listname.options[i].value == value) 
783   {
784     return true;
785   }
786 }
787 return false;
788}
789function VWZ_IsChecked(objcheck,value)
790{
791 if(objcheck.length)
792 {
793     for(var c=0;c < objcheck.length;c++)
794     {
795       if(objcheck[c].checked == "1" && 
796        objcheck[c].value == value)
797       {
798        return true; 
799       }
800     }
801 }
802 else
803 {
804  if(objcheck.checked == "1" )
805   {
806    return true; 
807   }    
808 }
809 return false;
810}
811/*
812   Copyright (C) 2003-2008 JavaScript-Coder.com . All rights reserved.
813*/

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.