Это не будет работать, так как onmouseover
не срабатывает при отключенных входах в большинстве браузеров. (Opera - исключение, а IE обычно нет, за исключением случаев, когда вы обманываете его с помощью операции перетаскивания.)
В любом случае для меня это звучит довольно странно и недружелюбно. Почему вы хотите отключить? Если он не отключается, когда вы пытаетесь с ним взаимодействовать, то, похоже, в этом нет никакого смысла (но много недостатков доступности).
Если это просто стиль, то используйте стили:
<style type="text/css">
.weirdinput { color: silver; }
.weirdinput:hover, .weirdinput:focus { color: black; }
</style>
<input class="weirdinput" value="smth" />
Однако IE <8 не поддерживает <code>:focus, а IE <7 не поддерживает <code>:hover для не-ссылок, поэтому, если вам нужно работать над этим, вам придется добавить некоторые сценарии, например, , что-то вроде:
<style type="text/css">
.weirdinput { color: silver; }
.weirdinput:hover, .weirdinput:focus, .weirdhover, .weirdfocus { color: black; }
</style>
<input class="weirdinput" value="smth" />
<!--[if lt IE 8]><script type="text/javascript">(function() {
// Fix focus/hover for IE on all inputs with class 'weirdinput'
//
var inputs= document.getElementsByTagName('input');
for (var i= 0; i<inputs.length; i++) {
var input= inputs[i];
if (input.className.indexOf('weirdinput')!==-1) {
input.onmouseover= mouseover;
input.onmouseout= mouseout;
input.onfocus= focus;
input.onblur= blur;
}
}
function mouseover() {
this.className+= ' weirdhover';
}
function mouseout() {
this.className= this.className.replace(' weirdhover', '');
}
function focus() {
this.className+= ' weirdfocus';
}
function blur() {
this.className= this.className.replace(' weirdfocus', '');
}
})();</script><![endif]-->