此问题之前已被问过很多次,但我找不到答案似乎解决了我的问题。
从经典的asp页面我称之为Javascript函数
在我的每个页面上。关键是当用户输入搜索文本并按Enter键时触发搜索按钮,而不是单击按钮,或从Ajax提供的选择中进行选择。
这在IE和FF中运行良好,就像这些问题所提出的所有其他问题一样。
这是Javascript。有人可以告诉我,如何让它适用于Chrome以及IE和FF?
以下是亚历山大·奥马拉的答案:
在页面上的body标签中更改函数调用以使用onkeyup而不是onkeypress - onkeyup =“KeyPress(event)”
改变了JS功能(也是在注意到其他人的重复意见之后 - 谢谢),如下所示:
function KeyPress(e)
{
var ev = e || window.event;
var key = ev.keyCode;
if(window.event) // IE
{
key = e.keyCode;
if (key == 13)
{
window.event.keyCode = 0;
$('#btnSearch').click();
}
}
else if (key == 13)
{
btnSearch.click();
ev.preventDefault();
}
}
它似乎有时候工作而不是其他工作,目前很少在chrome上工作。是否有保证让它一直工作的方法?
如果您想亲自试用,我网站的主页是www.dvdorchard.com.au,您的光标将在到达时位于搜索框中 - 输入一个单词> 3个字符并按回车键,如果你停留在页面上它不起作用,如果你移动到它运作的productfound.asp页面。
再次感谢。
答案 0 :(得分:0)
您正在寻找keyup
事件(documentation)。 keypress
事件在各种浏览器中都不一致。有关差异的信息,请参阅this question。
<强>更新强>
由于您使用的是jQuery,因此您还可以删除身体的onkeyup="KeyPress(event)"
属性,并将KeyPress
函数替换为以下内容(用事件处理代码替换内容)。
$(window).keyup(function(e){
/*YOUR CODE HERE*/
});
答案 1 :(得分:0)
答案 2 :(得分:0)
这应该适用于chrome。我不知道其他浏览器
function code(e) {
e = e || window.event;
return(e.keyCode || e.which);
}
window.onload = function(){
document.onkeypress = function(e){
var key = code(e);
// do something with key
// done doing something with key
key=0
};
};