Hi Adam,

I changed my login form to look like this:

 <html:form action="/login" method="POST" onsubmit="return
validateLoginForm(this);">
  <table border="0" cellspacing="5">
    <tr>
      <th align="right">
        <bean:message key="login.ssn"/>:
      </th>
      <td align="left">
        <html:text property="SSN"/><bean:message
key="login.correctssn"/>
      </td>
    </tr>
    <tr>
      <th align="right">
        <bean:message key="login.password"/>:
      </th>
      <td align="left">
        <html:password property="password"/><bean:message
key="login.correctpw"/>
      </td>
    </tr>
    <tr>
      <td align="right">
        <input type="submit" value="<bean:message
key="login.button"/>"/>
      </td>
      <td align="left">
        <input type="reset"/>
      </td>
    </tr>
  </table>
</html:form>

But still no luck. My server side validation still works fine, but the
client side validation does not seem to execute.
Even when I look at the source for my JSP I can see the call to the
JavaScript function:

<form name="loginForm" method="POST" action="/MySampleApp/sample/login"
onsubmit="return validateLoginForm(this);">

Its as if the variables are not getting loaded into the JavaScript
function, or the function is not getting called at all.

Anyone have any ideas on this?

Thanks again

Sean



-----Original Message-----
From: Adam Gordon [mailto:[EMAIL PROTECTED] 
Sent: Friday, August 11, 2006 11:56 AM
To: Struts Users Mailing List
Subject: Re: JavaScript validation errors

Sean-

You need to add an "onsubmit" attribute to your html:form" element that 
calls the validation function.  Specifically, IIRC, it needs to say:
onsubmit="return validateForm(this);

happy coding,

-adam

O'Shea, Sean wrote:
> Hi all,
>
> I'm using struts 1.2.7 with commons-validator-1.1.4 and I'm running
into
> a few generated JavaScript errors. Here's what my JSP looks like:
>
> <html:javascript formName="loginForm" />
> <html:form action="/login" method="POST">
>   <table border="0" cellspacing="5">
>     <tr>
>       <th align="right">
>               <bean:message key="login.ssn"/>:
>       </th>
>       <td align="left">
>               <html:text property="SSN"/><bean:message
> key="login.correctssn"/>
>       </td>
>     </tr>
>     <tr>
>       <th align="right">
>               <bean:message key="login.password"/>:
>       </th>
>       <td align="left">
>               <html:password property="password"/><bean:message
> key="login.correctpw"/>
>       </td>
>     </tr>
>     <tr>
>       <td align="right">
>               <input type="submit" value="<bean:message
> key="login.button"/>"/>
>       </td>
>       <td align="left">
>               <input type="reset"/>
>       </td>
>     </tr>
>   </table>
> </html:form>
>
> Here's what my action mapping looks like:
>
>               <action path="/login" name="loginForm"
> type="LoginAction"
>                               scope="request" validate="true"
> input="login">
> .....
>               </action>
>
> This is what my form bean looks like:
>
>               <form-bean name="loginForm"
> type="org.apache.struts.validator.DynaValidatorForm">
>                       <form-property name="SSN"
> type="java.lang.String" />
>                       <form-property name="password"
> type="java.lang.String" />
>               </form-bean>
>
> My form validations look like this:
>
>               <form name="loginForm">
>                       <field property="SSN" depends="required">
>                               <arg key="login.ssn" position="0"/>
>                       </field>
>                       <field property="password" depends="required">
>                               <arg key="login.password" position="0"/>
>                       </field>
>               </form>
>
> When I try to submit my loginForm. my server die validations work
fine,
> but the JavaScript does not get executed. From looking at the
generated
> source I see this:
>
> <script type="text/javascript" language="Javascript1.1"> 
>
> <!-- Begin 
>
>      var bCancel = false; 
>
>     function validateLoginForm(form) {
>
>         if (bCancel) 
>       return true; 
>         else 
>  var formValidationResult;
>        formValidationResult = validateRequired(form); 
>      return (formValidationResult == 1);
>    } 
>
>     function loginForm_required () { 
>      this.a0 = new Array("SSN", "SSN is required.", new Function
> ("varName", " return this[varName];"));
>      this.a1 = new Array("password", "Password is required.", new
> Function ("varName", " return this[varName];"));
>     } 
>
> Either the JavaScript is not getting called, or the generated
JavaScript
> does not match up. Could it be something to do with the
html:javasctipt
> tag? Looking at the source I have for the JavascriptValidatorTag class
I
> see this version:
>
>  * $Id: JavascriptValidatorTag.java 165208 2005-04-28 21:41:45Z mrdon
$ 
>
> All help would be greatly appreciated.
>
> Thanks
>
> Sean 
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>   

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to