Just from my own intuitive angle, I would expect the form to only copy
fields which were submitted regardless of disabled or readonly flag.
Main reason being that these are interface attributes which can be
turned on/off on the client side (via javascript).
i.e you can setReadonly/setDisabled in java program but some javascript
might turn them back on.
Regards,
Huy
Bob Schellink (JIRA) wrote:
[ https://issues.apache.org/jira/browse/CLK-643?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12845044#action_12845044 ]
Bob Schellink commented on CLK-643:
-----------------------------------
Having Form properties to override defaults could be useful, but an intuitive
default will be good.
According to the spec, the disabled attribute was meant to be used in the
context of JavaScript, so catering for this use case make sense. I have a
feeling that disabled usage is underutilized because of its strange behavior.
Form copy to object behaviour
-----------------------------
Key: CLK-643
URL: https://issues.apache.org/jira/browse/CLK-643
Project: Click
Issue Type: Improvement
Components: core
Affects Versions: 2.1.0
Reporter: Malcolm Edgar
Assignee: Malcolm Edgar
Priority: Minor
Fix For: 2.2.0
The Form#copyFormToObject() behaviour can be misleading in two respects.
When a HTML forms field is disabled, its value is displayed in the browser
window but it is not editable and is disable. However when the user submits the
form the field value is not submitted even if it is populated. The
Form#copyFormToObject() method will actually nullify the target objects
property value, as the disabled field has a null value. This is clearly not
the expected behaviour.
The other scenario which is problematic is with readonly fields. By default the
Form#copyFormToObject() method will write read only field value into the target
objects properties. Sometimes this is not the behaviour you are after, as type
coercion behaviour cause errors. For example if you are using a form which has
some TextFields showin a date property as a readonly field, when the form is
submitted the string value will be set on the target objects property which
will cause type coercion issues, or may truncate data. The Form should have an
option to not write readonly field values when copying form field values to a
target object.