这就是我想要发生的事情..当用户点击'enter'时,'SearchForItems()'应该触发。发生的事情是另一个控件,在页面上有“其他按钮”,只要其他任何元素被选中,或者在onkeyup之后,页面就会将焦点返回给它。
我必须强行关注页面加载时的“搜索按钮”,但是在按下任何时间后按下“其他按钮”会被触发。 “其他按钮”没有分配标签索引,是页面默认按钮。
我不确定我是否做得很好解释这一点。基本上我想知道为什么焦点被转移以及我如何强制“搜索按钮”在任何时候按下时触发。
这是我网页上的一个条目,我试图强制触发“搜索按钮”:
<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,把所有东西放在一起。我现在需要做的是找出按下输入的位置,这样每次在我的页面主要部分按下输入时都会取消输入。任何想法,我的页面上有很多元素?
function checkKey(e)
{
if(e.keyCode == 13 || e.which == 13)
{
e.returnValue = false;
e.cancel = true;
}
}
答案 0 :(得分: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!'); }}">
答案 1 :(得分:0)
在上面的代码中,只要按下enter键,就可以触发id="SearchAcceptedLotsButton"
,点击如下:
if(keycode == 13)
{
$('#SearchAcceptedLotsButton').trigger('click');
}
答案 2 :(得分: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)">
这会捕获表单中按下的每个输入,取消默认按钮行为并调用所需的功能。