1

フォームには、テキストボックスとリンクボタンがあります。このテキストのEnterキーを押すと、リンクボタンのクリックが発生する必要があります。

このような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のボタンをクリックすると、ページをリロードするだけです。

編集:firebugスクリプトデバッガーでデバッグしているときに、Enterキーを押すと、キーアップ機能が開始されません

4

1 に答える 1

0

FireFox では、Enter キーを押すとフォームの送信がトリガーされます。それを防ぐ必要があります-次のようなものです:

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

ただし、フォームを送信する他の方法 (送信ボタンなど) がある場合は、これらの要素からプログラムでフォームを送信する必要もあります。このコードは他のすべてのフォーム送信方法をブロックするためです。

また、リンククリックイベントについては、次のようなものを試してください:

$(".SearchClass").keyup(function(event) {
    if (event.keyCode == 13) {
        location.href = $('.SearchButtonClass').attr('href');
    }
});
于 2012-05-08T11:37:19.020 に答える