DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25421>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25421

[VALIDATOR] radio button validation with javascritp

           Summary: [VALIDATOR] radio button validation with javascritp
           Product: Struts
           Version: 1.1 Final
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: Validator Framework
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Hello, guys 

        I have some problems validating multiple radio buttons and checkboxes,
selections on the client side. Tracking down to the javascript code
defined in validator-rules.xml, I found that the validateRequired(form)
function doesn't deal with multiple checkboxes, selections at all. For
multiples radios, checkboxes etc, the field.type = undefined. I try to use 
a nightly build, but nothing diff happend. On the server side, the validation
is normal. 

        If you it will be able to answer me, would be very grateful. I am 
annexing jsp, validation.xml and struts-config.xml you to analyze.

tks!






**************************deleteme.jsp******************************************
**********
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html>
<HEAD>
<BODY>
<html:errors />
<html:form action="/saida2" onsubmit="return validateDeleteme(this);" 
method="get">
        <FIELDSET TITLE="r1">
        <html:checkbox property="r1" value="r1"> r1</html:checkbox>
        <br>
        <html:checkbox property="r1" value="r2"> r2</html:checkbox>
        <br>
        <html:checkbox property="r1" value="r3"> r3</html:checkbox>
        <br>
        <html:checkbox property="r1" value="r4"> r4</html:checkbox>
        <br>
        <html:checkbox property="r1" value="r5"> r5</html:checkbox>
        <br>
        </FIELDSET>
        <html:submit />
</html:form>
</BODY>
</html:html>
**************************deleteme.jsp******************************************
**********


**************************struts-
config.xml****************************************************
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";>
<!--
        
        This is a blank Struts configuration file with an example
        
        welcome action/page and other commented sample elements.
        
        
        
        Tiles and the Struts Validator are configured using the factory defaults
        
        and are ready-to-use.
        
        
        
        NOTE: If you have a generator tool to create the corresponding Java 
classes
        
        for you, you could include the details in the "form-bean" declarations.
        
        Otherwise, you would only define the "form-bean" element itself, with 
the
        
        corresponding "name" and "type" attributes, as shown here.
        
-->





<struts-config>



        <!-- ==================================== Data Source Configuration -->

        <!--
                
                <data-sources>
                
                <data-source>
                
                <set-property
                
                property="autoCommit"
                
                value="false"/>
                
                <set-property
                
                property="description"
                
                value="Example Data Source Configuration"/>
                
                <set-property
                
                property="driverClass"
                
                value="org.postgresql.Driver"/>
                
                <set-property
                
                property="maxCount"
                
                value="4"/>
                
                <set-property
                
                property="minCount"
                
                value="2"/>
                
                <set-property
                
                property="password"
                
                value="mypassword"/>
                
                <set-property
                
                property="url"
                
                value="jdbc:postgresql://localhost/mydatabase"/>
                
                <set-property
                
                property="user"
                
                value="myusername"/>
                
                </data-source>
                
                </data-sources>
                
        -->



        <!-- ======================================== Form Bean Definitions -->


        <!-- 
                
                O formulário contém os campos com as seguintes validações:
                *  Nome (requerido, pode somente ser caracter alfabético);
                *  Sobrenome (requerido, pode somente ser caracter alfabético);
                *  Data de nascimento (requerido; deve obedecer a 
máscara “dd/mm/aaaa”);
                *  Endereço (requerido);
                *  Cep (requerido; deve obedecer a máscara “nnnnnn-nnn”);
                *  Cidade (requerido, pode somente ser caracter alfabético);
                *  Estado (requerido, pode somente ser caracter alfabético e 
obedecer a máscara “ww”);
                *  Cartão de Crédito (requerido; deve ser um número de cartão 
de crédito válido);
                *  Email (deve ser email válido);
                *  Altura (requerido; deve estar entre 1,00 e 2,30);
                *  Telefone (deve ser somente número; deve ter no mínimo 9 
números; );
                
        -->

        <form-beans>
                <form-bean name="cadastro" 
type="org.apache.struts.validator.DynaValidatorForm">
                        <form-property name="nome" type="java.lang.String" />
                        <form-property name="sobrenome" 
type="java.lang.String" />
                        <form-property name="nascimento" 
type="java.lang.String" />
                        <form-property name="endereco" 
type="java.lang.String" />
                        <form-property name="cep" type="java.lang.String" />
                        <form-property name="cidade" type="java.lang.String" />
                        <form-property name="estado" type="java.lang.String" />
                        <form-property name="cartaoCredito" 
type="java.lang.String" />
                        <form-property name="email" type="java.lang.String" />
                        <form-property name="altura" type="java.lang.String" />
                        <form-property name="telefone" 
type="java.lang.String" />
                </form-bean>

                <form-bean name="deleteme" 
type="org.apache.struts.validator.DynaValidatorForm">
                        <form-property name="r1" type="java.lang.String
[]"></form-property>
                </form-bean>

        </form-beans>





        <!-- ================================= Global Exception Definitions -->



        <global-exceptions>

                <!-- sample exception handler
                        
                        <exception
                        
                        key="expired.password"
                        
                        type="app.ExpiredPasswordException"
                        
                        path="/changePassword.jsp"/>
                        
                        end sample -->

        </global-exceptions>





        <!-- =================================== Global Forward Definitions -->



        <global-forwards>

                <!-- Default forward to "Welcome" action -->



        </global-forwards>





        <!-- =================================== Action Mapping Definitions -->


        <action-mappings>
                <action path="/saida" 
type="org.apache.struts.actions.ForwardAction" input="/entrada.jsp" 
parameter="/saida.jsp" name="cadastro" scope="request"></action>
                <action path="/saida2" 
type="org.apache.struts.actions.ForwardAction" input="/deleteme.jsp" 
parameter="/saida2.jsp" name="deleteme" scope="request"></action>


                <!-- sample input and input submit actions
                        
                        
                        
                        <action
                        
                        path="/Input"
                        
                        type="org.apache.struts.actions.ForwardAction"
                        
                        parameter="/pages/Input.jsp"/>
                        
                        
                        
                        <action
                        
                        path="/InputSubmit"
                        
                        type="app.InputAction"
                        
                        name="inputForm"
                        
                        scope="request"
                        
                        validate="true"
                        
                        input="/pages/Input.jsp"/>
                        
                        
                        
                        end samples -->





        </action-mappings>





        <!-- ===================================== Controller Configuration -->



        <controller 
processorClass="org.apache.struts.tiles.TilesRequestProcessor" />





        <!-- ================================ Message Resources Definitions -->



        <message-resources parameter="resources.application" />





        <!-- ======================================= Plug Ins Configuration -->


        <!-- ========== Tiles plugin ===================  -->
        <!--                                                                    
                        -->
        <!--
                This plugin initialize Tiles definition factory. This later can 
takes some
                parameters explained here after. The plugin first read 
parameters from web.xml, then
                overload them with parameters defined here. All parameters are 
optional.
                The plugin should be declared in each struts-config file.
                - definitions-config: (optional) 
                Specify configuration file names. There can be several comma 
                separated file names (default: ?? )
                - moduleAware: (optional - struts1.1) 
                Specify if the Tiles definition factory is module aware. If 
true (default), 
                there will be one factory for each Struts module. 
                If false, there will be one common factory for all module. In 
this later case, 
                it is still needed to declare one plugin per module. The 
factory will be 
                initialized with parameters found in the first initialized 
plugin (generally the
                one associated with the default module).
                true : One factory per module. (default)
                false : one single shared factory for all modules
                - definitions-parser-validate: (optional)
                Specify if xml parser should validate the Tiles configuration 
file.
                true : validate. DTD should be specified in file header. 
(default)
                false : no validation
                
                Paths found in Tiles definitions are relative to the main 
context.
        -->
        <!-- comment following if struts1.0.x -->
        <plug-in className="org.apache.struts.tiles.TilesPlugin">
                <set-property property="definitions-config" value="/WEB-
INF/tiles-defs.xml" />
                <set-property property="moduleAware" value="true" />
                <set-property property="definitions-parser-validate" 
value="true" />
        </plug-in>

        <!-- end comment if struts1.0.x -->

        <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
                <set-property property="pathnames" value="/WEB-INF/validator-
rules.xml,/WEB-INF/validation.xml" />
        </plug-in>

</struts-config>
**************************struts-
config.xml****************************************************




**************************validation.xml****************************************
************
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules 
Configuration 1.0//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd";>

<form-validation>

        <!--
                This is a blank Validator form file with a commented examples.
        -->

        <global>

                <!-- An example global constant
                        <constant>
                        <constant-name>postalCode</constant-name>
                        <constant-value>^\d{5}\d*$</constant-value>
                        </constant>
                        end example-->

        </global>

        <formset>

                <!-- Form adicionado por Fulvio Longhi.'. -->

                <form name="cadastro">
                        <field property="nome" depends="required,mask">
                                <arg0 key="nome.label" />
                                <var>
                                        <var-name>mask</var-name>
                                        <var-value>^[a-zA-Z]*$</var-value>
                                </var>
                        </field>
                        <field property="sobrenome" depends="required,mask">
                                <arg0 key="sobrenome.label" />
                                <var>
                                        <var-name>mask</var-name>
                                        <var-value>^[a-zA-Z ]*$</var-value>
                                </var>
                        </field>

                        <field property="nascimento" depends="required,date">
                                <arg0 key="nascimento.label" />
                                <var>
                                        <var-name>datePatternStrict</var-name>
                                        <var-value>dd/MM/yyyy</var-value>
                                </var>

                        </field>
                        <field property="endereco" depends="required">
                                <arg0 key="endereco.label" />
                        </field>
                        <field property="cep" depends="required,mask">
                                <arg0 key="cep.label" />
                                <var>
                                        <var-name>mask</var-name>
                                        <var-value>^\d{5}(-\d{3})?$</var-value>
                                </var>
                        </field>
                        <field property="cidade" depends="required,mask">
                                <arg0 key="cidade.label" />
                                <var>
                                        <var-name>mask</var-name>
                                        <var-value>^[a-zA-Z ]*$</var-value>
                                </var>
                        </field>
                        <field property="estado" depends="required,mask">
                                <arg0 key="estado.label" />
                                <var>
                                        <var-name>mask</var-name>
                                        <var-value>^[A-Z]{2}$</var-value>
                                </var>
                        </field>
                        <field property="cartaoCredito" 
depends="required,creditCard">
                                <arg0 key="cartaoCredito.label" />
                        </field>
                        <field property="email" depends="required,email">
                                <arg0 key="email.label" />
                        </field>
                        <field property="altura" 
depends="required,float,floatRange">
                                <arg0 key="altura.label" />
                                <arg1 name="floatRange" key="${var:min}" 
resource="false" />
                                <arg2 name="floatRange" key="${var:max}" 
resource="false" />
                                <var>
                                        <var-name>min</var-name>
                                        <var-value>1.00</var-value>
                                </var>
                                <var>
                                        <var-name>max</var-name>
                                        <var-value>2.30</var-value>
                                </var>
                        </field>
                        <field property="telefone" depends="required,mask">
                                <arg0 key="telefone.label" />
                                <var>
                                        <var-name>mask</var-name>
                                        <var-value>^\(?(\d{3})\)?[-| ]?(\d{3})[-
| ]?(\d{4})$</var-value>
                                </var>
                        </field>
                </form>
                <form name="deleteme">
                        <field property="r1" depends="required">
                                <arg0 key="todosActionForm.required.label" />
                        </field>
                </form>


        </formset>

        <!-- An example formset for another locale
                <formset language="fr">
                
                <constant>
                <constant-name>postalCode</constant-name>
                <constant-value>^[0-9a-zA-Z]*$</constant-value>
                </constant>
                
                </formset>
        -->

</form-validation>

**************************validation.xml****************************************
************



 Fulvio Alessander Longhi de Souza .'.
 Analista Assistente de Informática 
               Tecnologia - BB - Brasil

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

Reply via email to