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);