0

这就是我想要发生的事情。当用户点击“输入”时,应该触发“SearchForItems()”。正在发生的是另一个控件,带有“其他按钮”,页面上的焦点会在任何其他元素被标记出来或在 onkeyup 之后返回给它。

我不得不在页面加载时强制关注“搜索按钮”,但之后任何时候按下输入都会触发“其他按钮”。“其他按钮”没有分配标签索引,是页面默认按钮

我不确定我是否能很好地解释这一点。基本上我想知道为什么焦点被转移,以及如何在按下输入时强制“搜索按钮”触发。

这是我页面上的一个条目,我试图强制触发“搜索按钮”:

<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 中。我现在需要做的是找出按下输入的位置,以便每次在页面的主要部分按下输入时都会取消输入。任何想法,我的页面上有很多元素?

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

3 回答 3

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

在上面的代码中,只要按下回车,id="SearchAcceptedLotsButton"就可以触发点击,如下所示:

    if(keycode == 13)
    {
        $('#SearchAcceptedLotsButton').trigger('click');
    }
于 2010-10-14T16:31:54.170 回答
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 回答