此代码在firefox(V21.0)中不起作用,但适用于IE(V9,V10)和Chrome(V 27.0.1453.110 m)
方法cal:
<input type="text" id="txt1" class="search-bar-input"
onkeyup="handleKeyPress('btn1');">
方法防御:
function handleKeyPress(searchButtonId) {
if (event.keyCode === 13) {
alert(event.KeyCode);
}
}
错误讯息:
ReferenceError: event is not defined
if (event.keyCode === 13) {
任何人都有任何想法来解决这个问题?
答案 0 :(得分:11)
使用
<input type="text" id="txt1" class="search-bar-input" onkeyup="handleKeyPress(event, 'btn1');">
然后
function handleKeyPress(event) {
event = event || window.event //For IE
if (event.keyCode === 13) {
alert(event.keyCode);
}
}
演示:Fiddle
答案 1 :(得分:2)
您可以将btn1
参数存储为data-*
属性,并使用不显眼的Javascript来指定事件处理程序(而不是内联)。
此外,您的第alert(event.KeyCode);
行有误,K
中的KeyPress
应为小写k
。
HTML
<input type="text" id="txt1" class="search-bar-input" data-searchButtonId="btn1" />
使用Javascript:
function handleKeyPress(event) {
if (event.keyCode === 13) {
console.log(event.keyCode + this.getAttribute("data-searchButtonId"));
}
}
window.onload = function(){
document.getElementById("txt1").onkeyup = handleKeyPress;
}