I solved my problem by changing field's variables names to length1 and
length2
instead of fieldLength1 and fieldLength2.
This is because of the if statement in JavascriptValidatorTag.java code:
  // skip requiredif variables field, fieldIndexed, fieldTest, fieldValue
  if (varName.startsWith("field")) {
      continue;
  }

The method and portion of the code from the struts source follows:

private String createDynamicJavascript(
        ModuleConfig config,
        ValidatorResources resources,
        Locale locale,
        Form form) {

        StringBuffer results = new StringBuffer();
        .............
        .............
                Map vars = field.getVars();
                // Loop through the field's variables.
                Iterator varsIterator = vars.keySet().iterator();
                while (varsIterator.hasNext()) {
                    String varName = (String) varsIterator.next();
                    Var var = (Var) vars.get(varName);
                    String varValue = var.getValue();
                    String jsType = var.getJsType();

                    // skip requiredif variables field, fieldIndexed,
fieldTest, fieldValue
                    if (varName.startsWith("field")) {
                        continue;
                    }
        ..................
        ...................
        return results.toString();
    }

Looking at the source code solved my problem.

Reddy Pingili
                      
> -----Original Message-----
> From: Pingili, Madhupal 
> Sent: Friday, April 02, 2004 10:41 AM
> To:   'Struts Users Mailing List'
> Subject:      validator-rules javascript problems
> 
> 
> I am trying to get variable values defined in validation.xml as below:
> <field    property="accountNo"
>    depends="required,numCheck">
>    <arg0 key="prepareSearchPageForm.accountno.displayname"/>
>    <arg1 name="numCheck" key="${var:fieldLength1}" resource="false"/>
>    <arg2 name="numCheck" key="${var:fieldLength2}" resource="false"/>
>    <var>
>       <var-name>fieldLength1</var-name>
>       <var-value>10</var-value>
>    </var>
>    <var>
>       <var-name>fieldLength2</var-name>
>       <var-value>13</var-value>
>    </var>
> </field>
> 
> I am extracting like validateIntRange() function:
> var iMin = parseInt(oRange[x][2]("min"));
> var iMax = parseInt(oRange[x][2]("max"));
> 
> My code is:
> var iFieldLength1 = parseInt(oNumCheck[x][2]("fieldLength1"));
> var iFieldLength2 = parseInt(oNumCheck[x][2]("fieldLength2"));
> 
> I am not getting values 10 and 13.  But, if I hard code values like 
> "iFieldLength1 = 10;", then everything works fine.
> 
> Am I missing anything here? How can I get those values?
> 
> Any help is appreciated.
> 
> Reddy Pingili
> 
> 
> ---------------------------------------------------------------------
> 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