DISABLED both remove the functionality of the input field, but to different degrees.
READONLY locks the field: the user cannot change the value.
DISABLED does the same thing but takes it further: the user cannot use the field in any way, not to highlight the text for copying, not to select the checkbox, not to submit the form. In fact, a disabled field is not even sent if the form is submitted.
Currently only MSIE recognizes either of these attributes.
<INPUT NAME="realname" VALUE="Hi There" READONLY>
<INPUT NAME="realname" VALUE="Hi There" DISABLED>
It's important to understand that
Copyright 1997-2002 Idocs Inc. Content in this guide is offered freely to the public under the terms of
the Open Content License and the Open Publication License.
Contents may be redistributed or republished freely under these terms so long as credit to the original creator and
contributors is maintained.
READONLY merely prevents the user from changing the value of the field, not from interacting with the field. For many types of fields,
READONLY is irrelevent because you don't normally change the value. In checkboxes, for example, you can check them on or off (thus setting the
CHECKED state) but you don't change the
value of the field.
DISABLED, however, actually prevents you from using the field. Notice in these examples that you can set the checkboxes even though they are "read only":