Of course - there are dozens of ways (at least) to solve this. Hidden fields, personal drop down list for each date field (currently it is one, displayed in dialog box and serves four different date fields), etc., etc. I wrote this example just to show you that there are situations in which not sending contents of disabled fields isn’t that obvious and logical.
One could ask, what then is a purpose of such fields? Why they are still part of a form, since they don’t function anymore (when disabled) as form parts. They change into simple, particular labels.
BTW: Maybe anyone of you can answer similar question that relates to the very same problem (the same CJuiDatePicker, I’m talking about).
Show me the browser that IS rendering such fields correctly (in our understanding). Maybe Chrome and Opera or Safari, which I wasn’t tested yet. But both most famous browsers - IE and FF - are not rendering any additional effect for read-only fields and developer must do this itself. I’m doing it by changing background color to light gray and text color to dark gray or silver.
I usually use Chrome and have the same complaint with it about the rendering of "readonly", just as you do with IE/FF. I have had a vague idea that it was only Chrome that doing this user-unfriendly rendering.
I had a similar problem today (that’s how I found this post , I needed a text field where, based on a select option the user could enter a quantity, or the quantity needed to be set to 1. When set to 1 I tried adding disable but found the problem above, it wasn’t passed.
I tried changing the type of the field between hidden and text, not allowed.
I tried removing the text field and replacing with a hidden field with the same name. This worked in that it replaced the input, but the value was not passed on form submit.
My solution was to use css visibility between hidden and visible. Not sure if that works on every browser as this is an in office app and we require everyone use chrome.
Also can place the field in a div with overflow set to hidden and effectively hide it using css margins. This passes the value as well.
Upgrading jquery is a solution too, but for me that would mean changing a lot of old on clicks that no longer work in 1.9