Это действительно проблема с IE.
Возможно, вы можете попытаться использовать элемент span или что-то в качестве поля ввода. Затем вы можете настроить обработчик событий для прослушивания нажатой клавиши.
Например, следующий фрагмент JavaScript позволяет вставить символ во innerHTML элемента:
function addChar(element, event) {
if (!event) event = window.event;
element.innerHTML += String.fromCharCode(event.keyCode);
}
... и фрагмент HTML:
<span onkeypress="addChar(this, event);"></span>
Обратите внимание, что вам все еще нужен обходной путь, чтобы браузер не переходил на ранее посещенную веб-страницу при нажатии BACKSPACE.
Это можно сделать, например, с помощью event.preventDefault()
. Или вы можете использовать
<body onkeydown="if(event.keyCode==8||event.keyCode==13)return false;">
или что-то.
На http://www.mcemperor.nl/test/hidecaret/, вы можете увидеть пример.