IEだと、style.borderを空値にしてもデフォルトに戻してくれない件
フォーカスされたinput要素をハイライトし、フォーカスが外れたら元に戻すという
よくあるフォームを作ろうと思い、以下のようなコードを書いたら、
Firefox3.5 や Chrome4 では思うように動いたが、IE8では駄目だった。
<p>↓↓input↓↓</p> <input type="text" onfocus="this.style.border='solid 2px #69E'" onblur="this.style.border=''" /> <p>↑↑input↑↑</p>
onfocus時は何も問題無いが、onblur時が問題で、
Firefox/Chromeでは元の状態に戻ってくれるが
IEだと
こんな感じで、デフォルトの状態には戻してくれず、
style.border='0px' 状態に orz
classのon/offにしたら、当然思うような動作になりましたが、
<style type="text/css"> .on { border: solid 2px #69E; } </style> <script type="text/javascript" src="prototype.js"></script> <!-- jqueryでもなんでもいいけど --> <p>↓↓input↓↓</p> <input type="text" onfocus="Element.addClassName(this,'on')" onblur="Element.removeClassName(this,'on')" /> <p>↑↑input↑↑</p>
IEくんはいつも面倒をかけてくれる。。。