Multiple functions in javascript not working

Discussion in 'JavaScript' started by logical, Oct 31, 2009.

  1. #1
    I am new to javascript and i have created a form with two java functions but they don't seem to work together. the checkform() works but the checkemail() does not. below is my code. any help would be greatly appreciated.

    thanks


    <html>
    <script language="JavaScript" type="text/javascript">
    <!--
    var radio_selection="";
    function checkform ( form )
    {
      // ** START **
      if (form.name.value == "")
    {
        alert( "Please enter your name." );
        form.name.focus();
        return false;
      }
    if (form.Phone.value == "") {
        alert( "Please enter your phone number." );
        form.Phone.focus();
        return false;
      }
      if (form.email.value == "") {
        alert( "Please enter your email." );
        form.email.focus();
        return false;
    }
    if (radio_selection=="")
    {
    alert("Please indicate your attendance.");
    return false;
    }
     // ** END **
      return true;
    }

    function checkEmail(form)
    {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.email.value))
    {
    return true;
    }
    alert("Invalid E-mail Address! Please re-enter.");
    return false;
    }

    //-->
    </script>
    <body>
    <form style="font-family:lucida calligraphy;font-size:120%;color:maroon" action="invitees.php" method="post" onsubmit="return checkform(this);return checkEmail(this);">

    <table cellspacing="5" cellpadding="5" border="0">
    <tr>
    <td valign="top" >
    <style="font-family:lucida calligraphy;font-size:100%;color:maroon">Name:
    </td>
    <td valign="top">
    <input type="text" name="name" id="name" size="40" value="" />

    </td>
    </tr>
    <tr>
    <td valign="top">
    Phone Number
    </td>
    <td valign="top">
    <input type="text" name="Phone" id="Phone" size="40" value="" />

    </td>
    </tr>
    <tr>
    <td valign="top">
    Email Address:
    </td>
    <td valign="top">
    <input type="text" name="email" id="email" size="40" value="" />

    </td>
    </tr>
    <tr>
    <td valign="top">
    Will You Attend
    </td>
    <td valign="top">
    <input type="radio" name="Attendance" id="Attendance_0" value="Yes" onClick="radio_selection='yes'" /> Yes
    <input type="radio" name="Attendance" id="Attendance_1" value="No" onClick="radio_selection='no'"/> No
    <input type="radio" name="Attendance" id="Attendance_2" value="Maybe" onClick="radio_selection='maybe'"/> Maybe<br/>

    </td>
    </tr>
    <tr>
    <td valign="top">
    Adults
    <select name ="adults" id="Adults" >
    <option>0</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option> <option>8</option>
    <option>9</option>
    <option>10</option>
    </select>
    </td>
    <td valign="top">
    Kids
    <select name="kids" id="Kids" >
    <option>0</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option> <option>8</option>
    <option>9</option>
    <option>10</option>
    </select>
    </td>
    </tr>

    <tr>
    <td valign="top">
    Post a Note
    </td>
    <td valign="top">
    <textarea name="Note" id="Note" rows="6" cols="35"></textarea>

    </td>
    </tr>
    <tr>
    <td colspan="3" align="center">
    <input type="submit" value=" Submit Form " />
    </td>
    </tr>
    </table>
    </form>
    </html></body>
     
    logical, Oct 31, 2009 IP
  2. n3r0x

    n3r0x Well-Known Member

    Messages:
    257
    Likes Received:
    4
    Best Answers:
    1
    Trophy Points:
    120
    #2
    This works.. You forgot to "call" checkEmail() since onsubmit="return checkform(this);return checkEmail(this);" does that if checkform is true it submits form.. which means checkemail never gets called

    <html>
    <script language="JavaScript" type="text/javascript">
    <!--
    var radio_selection="";
    function checkform ( form )
    {
      // ** START **
          if (form.name.value == "")
        {
            alert( "Please enter your name." );
            form.name.focus();
            return false;
          }
        if (form.Phone.value == "") {
            alert( "Please enter your phone number." );
            form.Phone.focus();
            return false;
          }
          if (form.email.value == "") {
            alert( "Please enter your email." );
            form.email.focus();    
            return false;
        } else {
            if(!checkEmail(form)) {
                return false;
            }        
        }
        if (radio_selection=="")
        {
            alert("Please indicate your attendance.");
            return false;
        }
     // ** END **
      return true;
    }
    
    function checkEmail(form)
    {
        var myRegexp = "/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/";
        if (myRegexp.match(form.email.value))
        {
            return true;
        }
            alert("Invalid E-mail Address! Please re-enter.");
            return false;
    }
    
    //-->
    </script>
    <body>
    <form style="font-family:lucida calligraphy;font-size:120%;color:maroon" action="invitees.php" method="post" onsubmit="return checkform(this);return checkEmail(this);">
    
    <table cellspacing="5" cellpadding="5" border="0">
    <tr>
    <td valign="top" >
    <style="font-family:lucida calligraphy;font-size:100%;color:maroon">Name:
    </td>
    <td valign="top">
    <input type="text" name="name" id="name" size="40" value="" />
    
    </td>
    </tr>
    <tr>
    <td valign="top">
    Phone Number
    </td>
    <td valign="top">
    <input type="text" name="Phone" id="Phone" size="40" value="" />
    
    </td>
    </tr>
    <tr>
    <td valign="top">
    Email Address:
    </td>
    <td valign="top">
    <input type="text" name="email" id="email" size="40" value="" />
    
    </td>
    </tr>
    <tr>
    <td valign="top">
    Will You Attend
    </td>
    <td valign="top">
    <input type="radio" name="Attendance" id="Attendance_0" value="Yes" onClick="radio_selection='yes'" /> Yes
    <input type="radio" name="Attendance" id="Attendance_1" value="No" onClick="radio_selection='no'"/> No
    <input type="radio" name="Attendance" id="Attendance_2" value="Maybe" onClick="radio_selection='maybe'"/> Maybe<br/>
    
    </td>
    </tr>
    <tr>
    <td valign="top">
    Adults
    <select name ="adults" id="Adults" >
    <option>0</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option> <option>8</option>
    <option>9</option>
    <option>10</option>
    </select>
    </td>
    <td valign="top">
    Kids
    <select name="kids" id="Kids" >
    <option>0</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option> <option>8</option>
    <option>9</option>
    <option>10</option>
    </select>
    </td>
    </tr>
    
    <tr>
    <td valign="top">
    Post a Note
    </td>
    <td valign="top">
    <textarea name="Note" id="Note" rows="6" cols="35"></textarea>
    
    </td>
    </tr>
    <tr>
    <td colspan="3" align="center">
    <input type="submit" value=" Submit Form " />
    </td>
    </tr>
    </table>
    </form>
    </html></body> 
    Code (markup):
     
    n3r0x, Nov 2, 2009 IP