我的onkeypress事件无法在我网站的搜索栏上运行。这是我的javascript和html代码:
window.onload = function() {
document.getElementById("SearchText").value = getParameterByName("s");
var a = document.getElementById("SearchLink");
a.onclick = function() {
search();
}
}
function search() {
var searchResultsUrl = "/search/";
document.location.href = searchResultsUrl + "?s=" +
document.getElementById("SearchText").value;
return false;
}
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)')
.exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
这是html代码:
<input type="text" id="SearchText" onkeypress="if(SearchText.keyCode==13)search()" />
答案 0 :(得分:4)
文本框没有keyCode
属性 - 这是事件对象的属性。试试这个。
HTML:
<input type="text" id="SearchText" />
JS:
window.onload = function() {
var textbox = document.getElementById("SearchText");
textbox.value = getParameterByName("s");
... snip ...
textbox.onkeypress = function (e) {
if (e.keyCode === 13) {
search();
}
};
}
... snip ...
答案 1 :(得分:0)
onkeypress scriptlet中的SearchText
变量将是未定义的。我建议在Javascript中定义你的事件处理程序,如下所示:
SearchTextbox = document.getElementById("SearchText");
SearchTextbox.onkeypress = function(evt) {
if (evt.keyCode === 13) {
// Handle key press event here
}
}
供您参考:
KeyboardEvent:https://developer.mozilla.org/en-US/docs/DOM/KeyboardEvent
element.onkeypress:https://developer.mozilla.org/en-US/docs/DOM/element.onkeypress
修改:按建议更改了event
参数名称。