0

これが私が望んでいることです。ユーザーが「Enter」を押すと、「SearchForItems()」がトリガーされます。何が起こっているのかというと、ページ上の「その他のボタン」を備えた別のコントロールは、他の要素がオンキーアップの外または後にタブで移動されるたびにフォーカスを戻します。

ページの読み込み時に「検索ボタン」に強制的にフォーカスする必要がありますが、その後、Enterキーを押すと、「その他のボタン」がトリガーされます。「その他のボタン」にはタブインデックスが割り当てられておらず、ページのデフォルトボタンです。

これを説明するのに良い仕事をしたかどうかはわかりません。基本的に、フォーカスがシフトしている理由と、Enterキーが押されたときに「検索ボタン」を強制的にトリガーする方法を知りたいです。

これは、「検索ボタン」を強制的にトリガーしようとしている私のページの1つのエントリです。

<td><input type="text" onkeydown="CheckForEnterKey(event)" id="AcceptedDate1" maxlength="7"  style="width:121px;" value="<%=DateTime.Now.AddMonths(-3).ToString("MM/yyyy")%>"/>&nbsp;</td>

これは私のjqueryファイルの一部であり、私も

$('#AcceptedDate1').keypress(function(e) { if (e.keyCode == 13 || e.which == 13) $('#SearchAcceptedLotsButton').click(); });

CheckForEnterKey関数

function CheckForEnterKey(e)
    {
        var keycode;
        if(e.which)
        {
            keycode = e.which;
        }
        else
        {
            keycode = e.keyCode;
        }

        if(keycode == 13)
        {
            $('#SearchAcceptedLotsButton').click();//tried SearchForItems() also
        }
    }

編集:

これを自分のページに追加したところ、機能しているようです。これを、すべてをまとめているメインのdivに追加しました。ここで行う必要があるのは、Enterキーが押された場所を特定することです。これにより、ページのメイン部分でEnterキーが押されるたびにEnterキーがキャンセルされます。何かアイデアはありますか、私のページにはたくさんの要素がありますか?

function checkKey(e)
    {
        if(e.keyCode == 13 || e.which == 13)
        {
            e.returnValue = false;
            e.cancel = true;
        }
    }
4

3 に答える 3

0

これが私が問題を解決した方法です:

この関数を追加しました。

function checkKey(e)
    {
        if(e.keyCode == 13 || e.which == 13)
        {
            e.returnValue = false;
            e.cancel = true;
            SearchAcceptedLots();
        }
    }

ページのすべてを含む一番上のdivに、これを追加しました。

<div id="ItemPanel" onkeydown="checkKey(event)">

これにより、フォーム内で押されたすべての入力がキャッチされ、デフォルトのボタンの動作がキャンセルされ、目的の関数が呼び出されます。

于 2010-10-14T19:46:56.873 に答える
0

なぜあなたが問題を抱えているのかわかりません。onKeyDownしかし、 Enter キーを押すためのコードを提供できます。

if (event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) { #DO JS HERE # }}

だから私はこのようにそれを使用します:

<input type="text" onKeyDown="if (event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) { alert('You pressed enter!'); }}">
于 2010-10-14T16:31:51.093 に答える
0

上記のコードでは、Enter キーが押されるたびにid="SearchAcceptedLotsButton"、次のようにクリックをトリガーできます。

    if(keycode == 13)
    {
        $('#SearchAcceptedLotsButton').trigger('click');
    }
于 2010-10-14T16:31:54.170 に答える