To programmatically make a checkbox read-only, set up a click event-handler for checkboxes with the readonly attribute set:
(function($){
// Block checkbox operation if it's read-only:
$('body').delegate("input[type=checkbox][readonly='readonly'].someOptionalClass", 'click', function(ev){
ev.preventDefault();
return false;
});
})(jQuery);
$('form input.someOptionalClass').attr({readonly: true});
To programmatically make a select element read-only, you simply need to disable all non-selected options:
$('select.readonlyOnCompletion option:not(:selected)').attr('disabled',true);