[
https://issues.jboss.org/browse/RF-13127?page=com.atlassian.jira.plugin.s...
]
Jiří Štefek edited comment on RF-13127 at 9/10/13 9:04 AM:
-----------------------------------------------------------
I can confirm, that rich:validator behaves incorrectly, when placed in iteration
component, validates a String value and uses onvalid/oninvalid functions with parameters.
It seems that the parameters for these function are not forwarded correctly when using
some string validations.
I've attached another sample (RF-13127.zip), using rich:repeat instead of dataTable,
and only with one set of string validated and one set of number validated inputs.
In this sample, all string validated inputs (vin) forwards the same parameters (id of
first vin input) to the onvalid/oninvalid function.
was (Author: jstefek):
I can confirm, that rich:validator behaves incorrectly, when placed in iteration
component, validates a String value and uses onvalid/oninvalid functions with parameters.
It seems that the parameters for these function are not forwarded correctly when using
some string validations.
I've attached another sample, using rich:repeat instead of dataTable, and only with
one set of string validated and one set of number validated inputs.
In this sample, all string validated inputs (vin) forwards the same parameters (id of
first vin input) to the onvalid/oninvalid function.
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
Assignee: Jiří Štefek
Attachments: JSFTemplate.zip, RF-13127.zip, richfaces.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