夜遅く、締め切りに遅れて、とても奇妙に思える問題に取り組んでいます。多分それは私が疲れているので私が行方不明になっていることは明らかですが、私は知りません...とにかくここに私のテストケースがあります:
<!doctype html>
<html>
<head>
<script type="text/javascript">
function NoEsc(e)
{
e = e||window.event;
var k = e.keyCode||e.which;
if (k!=27) return true;
var s = e.target||e.srcElement;
s.value = "ESCAPE PRESSED!";
//alert("It works when this alert is shown!");
return false;
}
</script>
</head>
<body onload="document.getElementById('in1').onkeydown=NoEsc;">
<input type="text" id="in1" value="ORIGINAL VALUE">
</body>
</html>
私のページでは、ESCを押してもフォーム全体がリセットされるのではなく、フォーカスがある要素だけがリセットされるという考え方です。上記のテストケースでは、ESCに入力要素のテキストを手動で「ESCAPEPRESSED!」に設定させてから、キーダウンイベントをキャンセルします。
IE(v9)では、これは完全に機能します。ただし、Firefox(v14.0.1)では、入力内でESCを押しても何も起こりません。 ただし、行のコメントを解除した場合、またはステートメントalert
の前にFireBugにブレークポイントを設定した場合は、完全に機能します。s.value = "ESCAPE PRESSED!"
私はこれに1、2時間取り組んできましたが、この時点で私は嫌悪感を持って手を挙げ、問題をここに投稿しています。なぜそれが機能しないのか分かりません。
誰かが私を助けることができますか?明らかな何かを見逃したことがありますか?ありがとう。