Ok ho risolto.

Niente cose macchinose.
Ho semplicemente disabilitato il checkbox se il suo corrispettivo campo hidden ha valore Zero.