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.

Reply via email to