これが私が望んでいることです。ユーザーが「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")%>"/> </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;
}
}