Elementos desativados "comem" cliques em alguns navegadores - eles não respondem a eles nem permitem que sejam capturados pelos manipuladores de eventos em qualquer lugar do elemento ou de seus contêineres.
IMHO, a maneira mais simples e limpa de "consertar" isso (se você realmente precisa capturar cliques em elementos desabilitados como o OP faz) é apenas adicionar o seguinte CSS à sua página:
input[disabled] {pointer-events:none}
Isso fará com que todos os cliques em uma entrada desabilitada caiam no elemento pai, onde você pode capturá-los normalmente. (Se você tiver várias entradas desativadas, poderá colocar cada uma em um contêiner individual próprio, se elas ainda não estiverem dispostas dessa maneira - uma extra <span>
ou uma <div>
, digamos - apenas para facilitar a distinção de quais entradas desativadas foi clicado).
A desvantagem é que, infelizmente, esse truque não funciona em navegadores antigos que não suportam a pointer-events
propriedade CSS. (Ele deve funcionar no IE 11, FF v3.6, Chrome v4): caniuse.com/#search=pointer-events
Se você precisar dar suporte a navegadores mais antigos, precisará usar uma das outras respostas!