1: readonly is to lock this control. You cannot modify it through the interface (but you can modify it through JavaScript).
2: disabled and readonly have the same thing. You can also lock this control. The user can’t change its value, but disabled is more thorough. It means that you can’t use it at all, including changing its background color (if you don’t believe it, you can modify an input text box that has been disabled, and you find it’s in vain). If it’s a checkbox, you can’t select it.
3: all controls have the disabled property, but not necessarily the readonly property. Such as select drop-down box