Do you have web form compatability checked in all the necessary places? Are you using the web compatible date controls? Are you sure you are using SharePoint 2003, I thought Form Services was a 2007 update.
Modern jQuery
Use .prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
DOM API
If you're working with just one element, you can always just access the underlying HTMLInputElement
and modify its .checked
property:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
The benefit to using the .prop()
and .attr()
methods instead of this is that they will operate on all matched elements.
jQuery 1.5.x and below
The .prop()
method is not available, so you need to use .attr()
.
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
Note that this is the approach used by jQuery's unit tests prior to version 1.6 and is preferable to using $('.myCheckbox').removeAttr('checked');
since the latter will, if the box was initially checked, change the behaviour of a call to .reset()
on any form that contains it – a subtle but probably unwelcome behaviour change.
For more context, some incomplete discussion of the changes to the handling of the checked
attribute/property in the transition from 1.5.x to 1.6 can be found in the version 1.6 release notes and the Attributes vs. Properties section of the .prop()
documentation.
Best Solution
Add conditional formating to the checkbox. Remove the text behind the box (would be visible all time). Add an expression field behind the checkbox and put your text in here. Then give that expression box the same conditional fomating.
An alternative:
Put the checkbox into a scetion with conditional formating (This needs more space but is eaysier to build and manage later.)