Disabled fields need to be submitted too

Disabled fields aren't submitted normally, but the controller is
expecting the data. We can use hidden fields instead when the control is
disabled.

Also, we need to check if the value is empty before setting it, or the
parseInt() function will break.