2012-05-08 16 views
1

フォームには、テキストボックスとリンクボタンがあります。このテキストのEnterキーを押すと、リンクボタンクリックが発生します。firefoxでのキープレスの問題の入力

このようなjsコ​​ードを追加しました。

JS:

$(".SearchClass").keyup(function(event) { 
     if (event.keyCode == 13) { 
      eval($('.SearchButtonClass').attr('href')); 
     } 
    }); 

ASPX:

<asp:LinkButton ID="lnkBtnSearch" runat="server" OnClick="lnkBtnSearch_Click" CssClass="SearchButtonClass"></asp:LinkButton> 
<asp:TextBox ID="txtSearch" CssClass="SearchClass" runat="server"></asp:TextBox> 

これはIEで正常に機能しているが、Firefoxで動作していません。 firefoxでボタンをクリックするだけで、ページをリロードします。

編集:それはFirefoxでからkeyup関数に

+0

あなたのリンクをクリックしてイベントのためにも

、ちょうどのようなものを試してみてください。 – antyrat

+0

@antyrat:クリックをトリガーする方法 –

+0

クリックイベントをトリガする移植性のある方法は疑問です。ブラウザではこれまでに聞いたことのないhrefのjavascriptとして保存すると仮定しています。 '$( 'SearchButtonClass')。click()'を試したことがありますか? – Rup

答えて

0

に入っていない、キーを押して入力します。上、放火魔のスクリプトデバッガでデバッグ中に、入力キーの押下は、フォームの送信をトリガしています。あなたはそれを阻止する必要があります - のようなもの:しかし

$($(".SearchClass").get(0).form).submit(function(evt) { 
    evt.preventDefault(); 
}); 

、あなたは(送​​信ボタンのような)フォームを送信する他の方法を持っている場合、あなたはまた、プログラム的にそれらの要素からフォームを送信する必要がありますこのコードは他のフォーム送信メソッドをすべてブロックします。あなたはあなたのコードではevalを使用する必要はありません

$(".SearchClass").keyup(function(event) { 
    if (event.keyCode == 13) { 
     location.href = $('.SearchButtonClass').attr('href'); 
    } 
}); 
+0

私はevent.preventDefault()..を試してみましたが、これも動作していません.. –

+0

これはおそらくjavascriptフォーム提出にasp.netフレームワークが使用します。 –

+0

これを解決する方法についてあなたの意見は何ですか? –