[richfaces-issues] [JBoss JIRA] (RF-13127) onvalid and oninvalide pass wrong element when using rich:element with String field

Brian Leathem (JIRA) issues at jboss.org
Tue Feb 4 14:08:29 EST 2014


     [ https://issues.jboss.org/browse/RF-13127?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Leathem updated RF-13127:
-------------------------------

    Fix Version/s: 5-Tracking
                       (was: 5.0.0.Alpha4)

    
> onvalid and oninvalide pass wrong element when using rich:element with String field
> -----------------------------------------------------------------------------------
>
>                 Key: RF-13127
>                 URL: https://issues.jboss.org/browse/RF-13127
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-validators
>    Affects Versions: 4.3.3
>            Reporter: Louis Parisi
>              Labels: testcase_provided
>             Fix For: 5-Tracking
>
>         Attachments: JSFTemplate.zip, RF-13127.zip, richfaces.zip
>
>   Original Estimate: 1 hour
>  Remaining Estimate: 1 hour
>
> I have a bean iterated in a datatable.  Using the rich:validator on fields in the bean I am executing javascript when a field is validated and apply styling based on valid or invalid state.  The code below returns the correct element when the underlying field is a BigDecimal but intermittently returns the element from row zero and sometimes another rown when the field is a String.  If I just reference a String vs. BigDecimal and display the element passed to the javascript I get form:myTable:4:myField for a BigDecimal field and always form:myTable:0:myField no matter the row for a String field.
> {code}
> <h:inputText id="vendor" value="#{car.vendor}" valueChangeListener="#{car.valueChanged}">
>     <rich:validator oninvalid="valueModified(#{rich:element('vendor')}, false)"
>                     onvalid="valueModified(#{rich:element('vendor')}, true)"/>
> </h:inputText>
> {code}
> {code}
> <script>
>     function valueModified(element, valid) {
>         // use element.style rather than jQuery as it
>         // does not set entire background
>         alert("valueModified: " + element.id + " | valid: " + valid);
>         element.style.background='yellow';
>         if (valid) {
>           jQuery(element).css("border-color", "lightgray");
>         } else {
>           jQuery(element).css("border-color", "red");
>         }
>       }
>     </script>
> {code}
> Some other tests I did while trying to debug are:
> * I passed the rowKeyVar to a javascript method in the onvalid event and it passed the correct row for a BigDecimal and always zero for a String field.
> * The oncomplete event of the validator does not seem to fire for a String field but does for a BigDecimal field.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the richfaces-issues mailing list