Отключенные элементы «съедают» клики в некоторых браузерах - они не реагируют на них и не позволяют захватывать их обработчиками событий в любом месте элемента или любого из его контейнеров.
ИМХО самый простой и чистый способ «исправить» это (если вам действительно нужно захватывать клики на отключенных элементах, как это делает OP), это просто добавить следующий CSS на вашу страницу:
input[disabled] {pointer-events:none}
Это приведет к тому, что любые щелчки на отключенном входе будут попадать на родительский элемент, где вы сможете их нормально захватывать. (Если у вас есть несколько отключенных входов, вы можете захотеть поместить каждый в отдельный контейнер самостоятельно, если они еще не выложены таким образом - дополнительный <span>
или <div>
, скажем, - просто, чтобы было легко отличить, какой отключенный ввод была нажата).
Недостатком является то, что этот трюк, к сожалению, не работает для старых браузеров, которые не поддерживают pointer-events
свойство CSS. (Должно работать с IE 11, FF v3.6, Chrome v4): caniuse.com/#search=pointer-events
Если вам нужна поддержка старых браузеров, вам нужно использовать один из других ответов!