Quando devo usar Readonly ou Disabled?
O atributo readonly é recomendado em situações em que o campo deve ser exibido para o usuário, mas não pode ser editado. Por exemplo, quando tem um regra de negócio que obrigada um campo já vim preenchido ou quando o campo contém informações que não devem ser alteradas pelo usuário. O mais interessante de usar o readonly, é para evitar que o usuário edite um campo enquanto o formulário está sendo enviado ou processado.
Para o disabled é recomendado em situações em que o campo não deve ser editado e principalmente enviado com o formulário. Por exemplo, quando o campo é opcional e não é necessário enviá-lo com o formulário ou campos que contêm informações sensíveis que não devem ser alteradas pelo usuário.
Em resumo:
O disabled é recomendado quando o campo não deve ser editado e nem enviado com o formulário e;
O atributo readonly é recomendado quando o campo deve ser exibido para o usuário, mas não pode ser editado;
Ou seja , tanto para o readonly como para o disabled a definição deles vai ser por questões de segurança ou para evitar erros de entrada de dados.