誰かが非常に必死で疲れた初心者を助けてください。私はどこでも答えを探したが役に立たなかった。javascript event.keyCodeは、FireFox 3.6.25のkeydown、keypress、keyupイベントでは機能しません。
Enterキーが押されたかどうかをテストするためにkeyCode/charCodeをキャプチャしたい(私はkeydownを使用していましたが、何か動作している限りは騒がしくありません)。私は考えられるすべてのソリューションを試してみましたが、IE、Safari、Chrome、Operaではうまく動作しますが、FireFox 3.6.25(最新)では動作しませんか?私は私が呼び出す関数から単純な警告ボックスを表示することができるので、イベントが間違いなくトリガされていることは知っていますが、event.keyCodeの内容を保持する変数を宣言するのは別の問題です!
私のフォームのコードは基本的...
<form method="post" name="giftaidform" onsubmit="javascript:return validateForm();" action="../scripts/form-to-email.php">
<table width="500" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td width="180" align="right">Forename:</td>
<td align="left"><input name="forename" type="text" size="30" maxlength="30" onfocus="javascript:setUnchecked(this);" onkeydown="javascript:testForEnter(this);" onblur="javascript:isValidName(this);"></td>
</tr>
と私の "testForEnter" 関数のように...
です...
function testForEnter(obj) {
// store code of key that was pressed
var keyCode = obj.keyCode;
alert(keyCode);
// if the enter key was pressed then prevent default action
if (keyCode == 13) {
if(event.preventDefault) event.preventDefault();
event.returnValue = false;
}
}
私が持っていますobj.charCodeや以下のようなものを含む様々な他の処方を試しましたか?
function checkKey(evt) {
var keyID = (window.event) ? window.event.keyCode : event.which;
alert(keyID);
}
FireFoxでは何も動作しません!
'event'ではなく、' evt'という名前のパラメータが指定されているため、何も動作しません。あなたのコードでは、 'window.event'と' event'はどちらもFirefoxには存在しない 'window.event'を参照しています。イベントを正規化するには、まず 'var event = window.event ||イベント; '。最新のFirefoxは '3.6 'ではなく' 9'である。また、インラインイベントハンドラから関数を呼び出すときに、そのオブジェクトにアクセスするには 'event'オブジェクトを渡す必要があります。 –
"onfoo"ハンドラ文字列の先頭に "javascript:"は必要ありません。 – Pointy
@FelixKlingあなたは伝説です!私は今、 'イベント'に合格し、私のdodgyコードとその作業を完璧に仕分けしました - Firefox 9のバージョンにアップグレードしたことは言うまでもありません(古いバージョンをどのようにインストールできたかわかりません)! – Dougie