SitePoint Sponsor

User Tag List

Results 1 to 2 of 2
  1. #1
    SitePoint Member
    Join Date
    Dec 2002
    Posts
    9
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Red face Javascript: return not in function?

    i'm getting a "return not in function" error on the return for chkEach()

    does anybody know the general cause of this error because it keeps coming up?

    Thanks for yr time!

    Code:
    //TP
    chkEach(FeildIDs,funct)
    {
     var arrFeilds = new Array();
     arrFeilds=document.getElementById(FeildIDs);
     var arrErr= new Array();
     for(var i=0; i<arrFeilds.length; i++)
     {
      arrErr.push(funct(arrFeilds[i]));
     }
     return arrErr;
    }
    Rest of code:
    Code:
    //TP
    function chkboxRange(chkboxarray, min, minerror, max, maxerror)
    {
     /*
     Creates Array
     - var arrName = new Array()
      arrName[0]="item1"
      arrName[1]="item2"
      arrName[2]="item3"
     - var arrName=new Array("item1","item2","item3")
     - var arrName = ["item1","item2","item3"]
     */
     var arrSelect =[];
     //Cycle thru checkbox array
     //since first index=0, length is always 1 more than last index.
     for(var i=0;i<chkboxarray.length;i++)
     {
      if(chkboxarray[i].checked)
      {
       //if checked, push id into Select array.
       arrSelect.push(chkboxarray[i].id);
      }
     }
     var arrError = new Array();
     //if min exists & length is less than min, add minerror to arrError array.
     if(min && arrSelect.length<min)
     {
      arrError.push(minerror);
     }
     //if max exists & length is less than max, add maxerror to arrError array.
     if(max && arrSelect.length<max)
     {
      arrError.push(maxerror);
     }
     return arrError;
    }
    /*
    This function checks whether the passed parameter is null or blank.
    In this we pass the value of the fields as a parameter.
    If the str is blank or null, it will return true and otherwise false.
    */
    function isEmpty(feild)
    {
     //var str1=trim(str);
     var str= feild.value;
     /*
     http://www.webreference.com/js/column5/index.html
     Regular Expression Key:
      / - pattern must begin and end with / in Javascript
      Modifiers Before or after
       g Do global pattern matching.
       i Do case-insensitive pattern matching.
       m* Treat the string as multiple lines.
       s* Treat the string as a single line.
       x* Ignore whitespace within a pattern.
       * Modifiers that are not supported by Navigator 4.0x and Internet Explorer 4.0.
       Examples
        /JavaScript/i matches both "javascript" and "JavaScript"
      Rule 2: | Seperates alternatives
      Rule 4: Assertions
       ^ Matches at the beginning of the string.
       $ Matches at the end of the string.
       \b Matches a word boundary (between \w and \W), when not inside [].
       \B Matches a non-word boundary.
      Rule 5: Quantifiers
       {m,n} Must occur at least m times, but not more than n times.
       {n,} Must occur at least n times.
       {n} Must occur exactly n times.
       * Must occur 0 or more times (same as {0,}).
       + Must occur 1 or more times (same as {1,}).
       ? Must occur 0 or 1 time (same as {0,1}).
      Rule 6: Special Characters
       \n Linefeed
       \r Carriage return
       \t Tab
       \v Vertical tab
       \f Form-feed
       \d A digit (same as [0-9])
       \D A non-digit (same as [^0-9])
       \w A word (alphanumeric) character (same as [a-zA-Z_0-9])
       \W A non-word character (same as [^a-zA-Z_0-9])
       \s A whitespace character (same as [ \t\v\n\r\f])
       \S A non-whitespace character (same as [^ \t\v\n\r\f])
        /abc/gi 
     */
     //Replace str value with value after run thru regex.
     //regex deletes whitespace before the first & after the last alphanumeric character
     var trim = str.replace(/^\s+|\s+$/g,"");  
     
     if(trim == null || trim.length==0)
     {
      var error='<a href=#'+feild+'>'+feild+'is a required feild.</a>';
      return error;
     }
     else
     {
      return true;
     }
    }
    //this Keyword - http://www.quirksmode.org/js/this.html
    /*
    This Function is to find out that whther the value of the field is numeric or not.
    Parameter: any value(In this case its a value contained in any field.)
    Returns: false if user has not entered the number, true otherwise.
    */
    function onlyNbr(feild)
    {
     var str=feild.value;
     var pat = /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
     if(!str.match(pat))
     {
      var error='<a href=#'+feild+'>'+feild+'should consist of numbers only.</a>';
      return error;
     }
     else
     {
      return true;
     }
    }
    /*
    Function to find out whether the passed id is valid or not.
    Paramter: Email Id. In this case vfalue of a field in which email is entered.
    Return:  It returns true is the mail is not valid and false in opposite situation.
    */
    function isValidEmail(feild)
    {
     var str=feild.value;
     var pat = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
     if(!str.match(pat))
     {
      var error='<a href=#'+feild+'>'+feild+'is not a valid email address containing a \'@\' and extension (.com, .org, etc).</a>';
      return error;
     }
     else
     {
      return true;
     }
    }
    //TP
    chkEach(FeildIDs,funct)
    {
     var arrFeilds = new Array();
     arrFeilds=document.getElementById(FeildIDs);
     var arrErr= new Array();
     for(var i=0; i<arrFeilds.length; i++)
     {
      arrErr.push(funct(arrFeilds[i]));
     }
     return arrErr;
    }
    //TP
    chkUsual()
    {
     var arrErr= new Array();
     //Concatenate arrays - http://www.w3schools.com/jsref/tryit...ryjsref_concat
     arrErr=arrErr.concat(chkEach(reqTypeTxt,isEmpty);
     //arrErr=arrErr.concat(chkEach(onlyLtr,);
     arrErr=arrErr.concat(chkEach(onlyNbr,onlyNbr);
     arrErr=arrErr.concat(chkEach(validEmail,isValidEmail);
     return arrErr;
    }
    //TP
    chkForm()
    {
     var arrErr= new Array();
     arrErr=arrErr.concat(chkUsual());
     if(arrErr)
     {
      for(var i=0;i<arrErr.length;i++)
      {
       document.getElementById('faults').innerHTML+=arrErr[i];
      }
      return false;
     }
    }

  2. #2
    SitePoint Guru
    Join Date
    Apr 2006
    Posts
    802
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    A return has to be in a function's definition-
    chkEach(), chkUsual() and chkForm() need to be
    function chkEach(), function chkUsual() and function chkForm(),
    or
    chkEach= function(), etc


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •