Form validation script works in IE but not Mozilla

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • webbedfeet@hyperlink.co.za

    Form validation script works in IE but not Mozilla

    Hi
    I hope someone can help me. I have a client side form validation script
    which works perfectly in IE but clicking "Submit" in Mozilla does
    nothing - the form won't submit.
    Is there something I can use that will work for both browsers, or is
    there something wrong with my code? I seem to think that the problem
    lies with the "onclick" area of the form.
    This is my code, such as it is...

    <SCRIPT LANGUAGE="JavaS cript">
    function ValidateEntries () {

    if (MyForm.InputNa me.value == "") {
    alert ("\nPlease enter your first name.")
    return false;
    }

    if (MyForm.InputSu rname.value == "") {
    alert ("\nPlease enter your Surname.")
    return false;
    }

    if ((MyForm.InputE mail.value == "") ||
    (MyForm.InputEm ail.value.index Of('@') == -1) ||
    (MyForm.InputEm ail.value.index Of('.') == -1)) {
    alert ("\nPlease enter your Email Address.")
    return false;
    }

    if (MyForm.InputAd dress.value == "") {
    alert ("\nPlease enter your Address.")
    return false;
    }

    if (MyForm.InputPo stalcode.value == "") {
    alert ("\nPlease enter your Postalcode.")
    return false;
    }

    if (MyForm.InputTe lephoneNumber.v alue == "") {
    alert ("\nPlease enter your Telephone Number.")
    return false;
    }

    if (MyForm.InputCo mments.value == "") {
    alert ("\nPlease type your Comments.")
    return false;
    }
    else return document.MyForm .submit();
    }
    </script>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <html>
    <head>
    <title>Untitled </title>
    <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1"></head>

    <body bgcolor="#CCCCC C" leftmargin="5" topmargin="0">
    <Form name="MyForm" action="sendmai l.asp" method="post">

    <table width="534" border="0" cellpadding="0" cellspacing="0" >
    <tr>
    <td valign="top"><f ont size="2" face="Arial, Helvetica,
    sans-serif">Name
    : </font></td>
    <td valign="top"><i nput type="text" name="InputName "></td>
    </tr>
    <tr>
    <td valign="top"><f ont size="2" face="Arial, Helvetica,
    sans-serif">Surname
    : </font></td>
    <td valign="top"><i nput type="text" name="InputSurn ame"></td>
    </tr>
    <tr>
    <td valign="top"><f ont size="2" face="Arial, Helvetica,
    sans-serif">e-mail
    Address: </font></td>
    <td valign="top"><i nput type="text" name="InputEmai l"></td>
    </tr>
    <tr>
    <td valign="top"><f ont size="2" face="Arial, Helvetica,
    sans-serif">Physical
    Address : </font></td>
    <td valign="top"><t extarea name="InputAddr ess" rows="5"
    cols="30"></textarea></td>
    </tr>
    <tr>
    <td valign="top"><f ont size="2" face="Arial, Helvetica,
    sans-serif">Postal
    code : </font></td>
    <td valign="top"><i nput type="text" name="InputPost alcode"></td>
    </tr>
    <tr>
    <td valign="top"><f ont size="2" face="Arial, Helvetica,
    sans-serif">Telephon e
    Number : </font></td>
    <td valign="top"><i nput type="text"
    name="InputTele phoneNumber"></td>
    </tr>
    <tr>
    <td valign="top"><f ont size="2" face="Arial, Helvetica,
    sans-serif">Message
    : </font></td>
    <td valign="top"><t extarea name="InputComm ents" rows="5"
    cols="30"></textarea></td>
    </tr>
    <tr>
    <td colspan="2" valign="top"> <input type="button" value="Submit"
    onclick="Valida teEntries()">
    </td>
    </tr>
    </table>
    </Form>
    </body>

    If anyone could help me, I would seriously reconsider dashing my
    forehead against the desk
    </thanks>

  • Lasse Reichstein Nielsen

    #2
    Re: Form validation script works in IE but not Mozilla

    webbedfeet@hype rlink.co.za writes:
    [color=blue]
    > I have a client side form validation script which works perfectly in
    > IE but clicking "Submit" in Mozilla does nothing - the form won't
    > submit.[/color]

    Then you are doing something wrong. It should submit, just without
    the validation, otherwise it won't work if Javascript is turned off.
    [color=blue]
    > Is there something I can use that will work for both browsers, or is
    > there something wrong with my code?[/color]

    It's your code.
    [color=blue]
    > <SCRIPT LANGUAGE="JavaS cript">[/color]

    Should be
    <script type="text/javascript">
    The type attribute is required by HTML, and is always sufficient.
    [color=blue]
    > function ValidateEntries () {
    >
    > if (MyForm.InputNa me.value == "") {[/color]

    You have not declared a variable called MyForm. You assume that your
    browser will create a global variable for your named form. Not all
    browsers do that (IE does, Mozilla doesn't).

    When referring to a form called "MyForm", always use:
    document.forms['MyForm']
    To save typing, you can assign the form reference to a variable:

    var myForm = document.forms['MyForm'];

    Then do
    if (myForm.element s['InputName'].value == "") {

    Ditto for the remaining tests.
    (You could collect all the errors in one go, instead of only
    showing the first one. That would speed up the user)

    ....[color=blue]
    > else return document.MyForm .submit();[/color]

    There should be no need for this, just return true, if you
    make your page to work without javascript enabled.
    [color=blue]
    > }
    > </script>
    > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">[/color]

    ICK. There should not be anything before the DOCTYPE declaration
    in an HTML page. In particular, script elements are only valid
    inside the HEAD and BODY elements. Please make your HTML validate!
    [color=blue]
    > <Form name="MyForm" action="sendmai l.asp" method="post">[/color]
    ....[color=blue]
    > <input type="button" value="Submit" onclick="Valida teEntries()">[/color]

    This only works if Javascript is enabled. On the other hand, pressing
    return in one of the text fields might submit the form without any
    validation. A better approach is:

    ---
    <form ... onsubmit="retur n ValidateEntries ();">
    ...
    <input type="submit" value="Submit">
    ---

    Good luck.
    /L
    --
    Lasse Reichstein Nielsen - lrn@hotpop.com
    DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleD OM.html>
    'Faith without judgement merely degrades the spirit divine.'

    Comment

    • Thomas 'PointedEars' Lahn

      #3
      Re: Form validation script works in IE but not Mozilla

      Lasse Reichstein Nielsen wrote:
      [color=blue]
      > To save typing[...][/color]

      and increase efficiency,
      [color=blue]
      > you can assign the form reference to a variable: [...][/color]


      PointedEars

      Comment

      Working...