2011-11-09 16 views
0

フォームには非表示の送信ボタンがあります。入力時にフォームを「送信」しようとすると失敗します

Enterキーを使用してフォームを送信しようとすると、失敗します(アラートは表示されません)。

私は、次のJSを使用します。私のコードが動作しない理由として

$(function() { 
    $('div.quick-login form').submit(function() { 
     alert('test'); 

     return false; 
    }); 
}); 

http://jsfiddle.net/MsFY6/

任意のアイデア?私はそれをテスト

UPDATE

ブラウザはクロームです。

+0

FireFox 8.0とIE 8で私のために働いています。これが問題であると確信していますか? –

+0

とサファリの最新バージョンとie6で動作します – Giberno

答えて

1

私がいつもしていることは、キーコードをチェックする.keypress()ハンドラに入れられていることです。

$("#inputbox").keypress(function(e) { 
    if(e.keyCode == 13) { 
    alert('test'); 
    } 
}); 
1

FireFox 8.0およびIE 8で動作します。どのブラウザをお使いですか?彼らはsubmitのドキュメントにこの免責事項を持っている:、ブラウザによって

フォームが正確に1つのテキストフィールドがある場合、キーは専用フォーム 提出を引き起こす可能性が入力するか、 は送信ボタンがある場合にのみプレゼント。 Enterキーを押したときにキー入力イベントが発生した場合は、 で強制的に問題を解決しない限り、このキーの特定の動作に依存しないようにしてください。

Enterキーを押してはいけないようなサウンドです。

+0

Hmmm。本当なの。 +1 – PeeHaa

1

私はサファリ/クロームでエラーを再現することができます。理由は、送信ボタンがdisplay: none; -edであるためです。 If you unhide it, it worksvisibilty: hidden;and have it workでも可能です。

オプションがbind to a keypress as wellであることができる - 私が変更した13

+0

くそWebkit!あるいはそれを間違っている他のすべてのブラウザですか?スペックが何を言っているのか調べようとします。 – PeeHaa

+0

仕様に何も見つかりません。 :( – PeeHaa

0

リターンキーは、keyCodeはあなたの例である:

キーコードで

:隠されたvisibiltyでhttp://jsfiddle.net/MsFY6/7/

http://jsfiddle.net/MsFY6/8/

+0

ありがとう。しかし、入力フィールドに 'id'を追加する必要はないことを覚えておいてください。' $( '。quick-login input')。keypress() ' 'password'や' username'のような一般的な名前です。 – PeeHaa

関連する問題