struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rauf Khan" <mkr...@gmail.com>
Subject Re: problem w.r.t javascript
Date Wed, 02 Aug 2006 05:36:43 GMT
Hi,

  Iam doing client side validations. Let me explain the problem. All field
are <html:text> & using struts 1.1

case 1:
 Name :    3456
 Password : abc
 Email : def

   In case1, if i click the submit button with the respective values, iam
getting alert msg "enter only characters for name" & "enter only numbers for
password" BUT its not displaying alert msg "Please enter a valid Email
address".

Suppose if i enter proper values for name & password field then it will
display alert msg "Please enter a valid Email address".

  As in case i all the 3 values are invalid so it should show all the 3
alert msgs in one alert.

  Only for name field iam checking that it should contain characters with
min. length=5 & max. length=6. For password field iam checking it should
contain only numbers. For email field iam checking to have a proper email
id. ALL field are required.

messageresources.properties:
---------------------------------------------
ComposeForm.OnlyNumbers =enter only numbers for password
ComposeForm.OnlyChars = enter only characters for fname
ComposeForm.InvalidEmail = Please enter a valid Email address.
ComposeForm.fname.minlength = First Name cannot be less than  {1}
characters.
ComposeForm.fname.maxlength  = First Name cannot be greater than  {2}
characters.

validation.xml
---------------------

<!-- compose form Validation-->
 <form name="InfoForm">
    <field  property="fname" depends="required, mask, minlength,
maxlength">
  <arg key="ComposeForm.fname"  position="0"/>
  <msg name="mask" key="ComposeForm.OnlyChars"/>
  <var>
             <var-name>mask</var-name>
              <var-value>^[a-zA-Z]*$</var-value>
       </var>
  <msg name="minlength" key="ComposeForm.fname.minlength"/>
  <arg name="minlength" key="${var:minlength}"  resource="false"
position="1"/>
  <var>
      <var-name>minlength</var-name>
      <var-value>5</var-value>
  </var>
  <msg name="maxlength" key="ComposeForm.fname.maxlength"/>
  <arg name="maxlength" key="${var:maxlength}" resource="false"
position="2"/>
          <var>
       <var-name>maxlength</var-name>
      <var-value>6</var-value>
  </var>
 </field>

     <field  property="password" depends="required, mask">
          <arg key="ComposeForm.password"  position="0"/>
  <msg name="mask" key="ComposeForm.OnlyNumbers"/>
  <var>
            <var-name>mask</var-name>
                 <var-value>^[0-9]*$</var-value>
       </var>
      </field>

 <field  property="emailaddress" depends="required, email">
       <arg key="ComposeForm.email"  position="0"/>
       <msg name="email" key="ComposeForm.InvalidEmail"/>
      </field>

 </form>
Struts-config.xml
--------------------------

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

<set-property property="pathnames" value="/WEB-INF/validator-rules.xml
,/WEB-INF/validation.xml"/>

<set-property property="stopOnFirstError" value="true"/>
</plug-in>

JSP
------
<html:form action = "/some" method= "post" onsubmit="return
validateInfoForm(this);">
<table>
<tr><td>Name :&nbsp;</td><td> <html:text property="fname"
/></td><td><!--<html:errors property="fname"/>--></td></tr>
<tr><td> Password :  &nbsp; </td><td><html:text property="password"
/>
</td><td></td></tr>
<tr><td> Email : &nbsp;</td><td><html:text property="emailaddress"/></td>
<td></td></tr>
<tr><td colspan="3"> <html:submit/></td></tr>
</table>

<!-- Begin Validator Javascript Function-->
         <html:javascript formName="InfoForm"   staticJavascript="true"/>
<!-- End of Validator Javascript Function-->

</html:form>

Regards
Rauf Khan

On 8/1/06, Adam Gordon <adam.gordon@readytalk.com> wrote:
>
> Rauf-
>
> Are you doing client or server-side validation?  Or both?
>
> W.R.T your multiple errors, there is an attribute you can set in your
> struts XML file, namely:
>
> |  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
>    <set-property property="pathnames"
>                            value="/WEB-INF/validator-rules.xml
> ,/WEB-INF/validations.xml"/>
>    <set-property property="stopOnFirstError"
>                  value="true"/>
> </plug-in>|
>
> Note that you must be using Struts >= 1.2.0 for this feature, though I
> believe prior to 1.2.0, the behavior was to always stop on the first
> error.
>
> I'm a little confused by your explanation but it sounds like you're
> possibly missing the XML in your JSP for the email field since you say
> it doesn't show up - the other rationale is that it's a valid email
> address.
>
> Also, just an FYI, your password field does not have a max/min length
> validation.
>
> -Adam
>
> Rauf Khan wrote:
> > Hi,
> >
> > I am trying to validate a simple form which has a name, password &
> > email field. I have validated that name field(html:text) should
> > contain only characters, password field(html:text) contains only
> > numbers & email field(html:text) should contain proper email id.
> >
> > When i enter only numbers in name field, only characters in password
> > field & an invalid email id then only alert msg "please enter only
> > characters"
> > is coming for name field & msg "pls enter only numbers for password
> > field' *BUT* no msg is coming for email field even though i have
> > entered a wrong email id. Also those two msgs are coming
> > simultaneously but i want like this, i mean to say when i click on
> > submit button first only msg for name field should show. Then again if
> > i click submit button then msg for password field should show & so on.
> >
> > Also suppose if i enter the proper name (only characs) , proper
> > password (only numbers) & if i enter the invalid email id then it will
> > show the
> > msg" please enter a valid email address".
> >
> > I am sending the following code for reference :
> >
> > Validation.xml
> > ---------------------
> > <!-- compose form Validation-->
> > <form name="InfoForm">
> >    <field  property="fname"
> > depends="required,mask,minlength,maxlength">
> >  <arg key="ComposeForm.fname"  position="0"/>
> >  <msg name="mask" key="ComposeForm.OnlyChars"/>
> >         <var>
> >           <var-name>mask</var-name>
> >           <var-value>^[a-zA-Z]*$</var-value>
> >        </var>
> >  <msg name="minlength" key="ComposeForm.fname.minlength"/>
> >  <arg name="minlength" key="${var:minlength}"  resource="false"
> > position="1"/>
> >      <var>
> >            <var-name>minlength</var-name>
> >            <var-value>5</var-value>
> >      </var>
> >  <msg name="maxlength" key="ComposeForm.fname.maxlength"/>
> >  <arg name="maxlength" key="${var:maxlength}" resource="false"
> > position="2"/>
> >           <var>
> >                 <var-name>maxlength</var-name>
> >                 <var-value>6</var-value>
> >          </var>
> > </field>
> >     <field  property="password" depends="required,mask">
> >           <arg key="ComposeForm.password"  position="0"/>
> >         <msg name="mask" key="ComposeForm.OnlyNumbers"/>
> >             <var>
> >                         <var-name>mask</var-name>
> >                         <var-value>^[0-9]*$</var-value>
> >                     </var>
> >      </field>
> >      <field  property="email" depends="required,email">
> >          <arg key="ComposeForm.email"  position="0"/>
> >          <msg name="email" key="ComposeForm.InvalidEmail"
> > position="0"/>
> >      </field>
> > </form>
> >
> >
> > MessageResources.properties:
> > --------------------------------------------------
> > #- validations for compose.jsp --
> > ComposeForm.fname = Please enter the Name.
> > ComposeForm.password = Please enter the Password.
> > ComposeForm.email = Please enter the Email.
> > ComposeForm.OnlyNumbers = Please enter only numbers
> > ComposeForm.OnlyChars = Please enter only characters
> > ComposeForm.InvalidEmail = Please enter a valid Email address.
> > ComposeForm.OnlyNumbersChars = Please enter only numbers & characters
> > ComposeForm.fname.minlength = First Name cannot be less than  {1}
> > characters.
> > ComposeForm.fname.maxlength  = First Name cannot be greater than  {2}
> > characters.
> >
> >
> > Thanks in advance.
> >
> > Regards
> > Rauf Khan
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message