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

Brian Leathem (JIRA) jira-events at lists.jboss.org
Thu Aug 22 16:03:26 EDT 2013


    [ https://issues.jboss.org/browse/RF-13127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12798649#comment-12798649 ] 

Brian Leathem commented on RF-13127:
------------------------------------

Thanks [~parisila].  Your provided sample helps understand what you are trying to achieve with the client-side javascript referenced in your description.

However, the backend has a lot of domain specific code that obfuscates the underlying issue.  It would greatly help in expediting the resolution of this issue if you could cimply the attached sample.  Some places to start:
# Try removing Spring.  Is this reproducible with a Vanilla JSF/RF appplication?
# Try removing JPA.  Can we use simple POJO's to isolate the defference in behaviour between the String and BigDecimal properties?
                
> 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
>         Attachments: JSFTemplate.zip
>
>
> 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