2011-04-27 14 views
0

私は単純なログインフォームを使って、保存したパスワードでFirefoxでEnterキーを押してもJavascriptフォームが送信されない

形式::ここでは、コードの関連ビットです

<form id="loginForm"> 
    <input type="text" id="username" /> 
    <input type="password" id="password" /> 
    etc... 
</form> 

はjavascript:

$('#username, #password').bind('keypress', function(e) { 
    if (e.which == 13) { 
     $('#loginForm').submit(); 
     e.preventDefault(); 
    } 
}); 

ユーザーがオンになったときに私がいる問題は、Firefoxのに固有のものですブラウザにパスワードを保存させる機能。

ユーザ名のテキストフィールドに自分のユーザ名の最初の数文字を入力すると、記憶されているオプションが表示されます。下向きの矢印を押してユーザ名を強調表示し、Enterキーを押して選択すると、JavaScriptがを発射してからの前にパスワードフィールドが自動入力されます。これにより、空のパスワードが送信されます。

Chromeで同じ「パスワードを保存」機能を使用すると問題なく動作します。

これを回避する方法については、

+0

してくれてありがとうCoolEshあなたがフォーカスを確認しましたか?パスワードやユーザー名入力、または送信ボタン(追加した場合)にありましたか? – KutePHP

+0

これは私が入力した場所なので、フォーカスはユーザー名フィールドにあります。私はユーザー名の最初の数文字を入力し、保存されたユーザー名/パスワードのリストにFirefoxが表示する最初のオプションを選択します。私が最初のオプションを選択するためにenterキーを押すと、JavaScriptがパスワードフィールドを入力する前にJavascriptが起動してフォームを送信しています。 –

+2

keyupイベントを使用するようにしてください – CoolEsh

答えて

1

keypressをkeyupに変更し、すべてが完全に機能します。

$('#username, #password').bind('keyup', function(e) { 
    if (e.which == 13) { 
     $('#loginForm').submit(); 
     e.preventDefault(); 
    } 
}); 

先端

関連する問題