Javascript JS输入按键事件-无法读取属性';增补列表器';空的

Javascript JS输入按键事件-无法读取属性';增补列表器';空的,javascript,html,dom-events,addeventlistener,Javascript,Html,Dom Events,Addeventlistener,我已经为我的网站创建了一个搜索功能,最初只是将其设置为表单元素,使用POST将变量发送到我的搜索页面。然而,这只会在search.php上给我一个简单的URL。因此,如果用户单击某个内容,然后返回,那么将不会发布任何变量,因此不会有更多的搜索结果 我想改进这一点,因此如果他们单击某个内容并返回,它将返回到search.php?term=search%20term的URL,然后将其视为GET变量,这样它将再次显示结果,并可用于直接在URL栏中搜索某个内容 (注意:我有重写规则将search.php

我已经为我的网站创建了一个搜索功能,最初只是将其设置为
表单元素
,使用
POST
将变量发送到我的搜索页面。然而,这只会在
search.php
上给我一个简单的URL。因此,如果用户单击某个内容,然后返回,那么将不会发布任何变量,因此不会有更多的搜索结果

我想改进这一点,因此如果他们单击某个内容并返回,它将返回到
search.php?term=search%20term
的URL,然后将其视为
GET
变量,这样它将再次显示结果,并可用于直接在URL栏中搜索某个内容

(注意:我有重写规则将
search.php?term=search%20term
更改为
search/search%20term
。我还有两个搜索栏,一个用于手机,一个用于桌面)

因此,我将代码更改为:

函数搜索(x){
如果(x==“搜索”){
var search_term=document.getElementById('searchbox').value;
}else if(x==“迷你搜索”){
var search_term=document.getElementById('minisearchbox')。值;
}
如果(搜索词!=“”){
window.location.href=“搜索/”+搜索词;
}
}

如果确实存在具有该ID的元素,则脚本可能在加载DOM之前运行

尝试将代码包装到:

document.addEventListener("DOMContentLoaded", function(event) { 
  // Your code here
});

如果确实存在具有该ID的元素,则脚本可能在加载DOM之前运行

尝试将代码包装到:

document.addEventListener("DOMContentLoaded", function(event) { 
  // Your code here
});

您可能做得不正确,请尝试此操作,您必须在引号中传递字符串,您错过了该部分

var\u search=document.getElementById('searchbox');
_search.addEventListener('keypress',函数(键){
if(key.keyCode==13){
搜索(“搜索”);
}
});
var mini_search=document.getElementById('minisearchbox');
迷你搜索。addEventListener('keypress',函数(键){
if(key.keyCcode==13){
搜索(“迷你搜索”);
}
});
函数搜索(x){
如果(x==“搜索”){
var search_term=document.getElementById('searchbox').value;
}else if(x==“迷你搜索”){
var search_term=document.getElementById('minisearchbox')。值;
}
如果(搜索词!=“”){
console.log(搜索词);
window.location.href=“搜索/”+搜索词;
}
}

您可能做得不正确,请尝试此操作,您必须在引号中传递字符串,您错过了该部分

var\u search=document.getElementById('searchbox');
_search.addEventListener('keypress',函数(键){
if(key.keyCode==13){
搜索(“搜索”);
}
});
var mini_search=document.getElementById('minisearchbox');
迷你搜索。addEventListener('keypress',函数(键){
if(key.keyCcode==13){
搜索(“迷你搜索”);
}
});
函数搜索(x){
如果(x==“搜索”){
var search_term=document.getElementById('searchbox').value;
}else if(x==“迷你搜索”){
var search_term=document.getElementById('minisearchbox')。值;
}
如果(搜索词!=“”){
console.log(搜索词);
window.location.href=“搜索/”+搜索词;
}
}



这意味着
getElementById
正在返回
undefined
。文档中是否存在具有该确切ID的元素?@OzzyWalsh否,这意味着
getElementById
返回
null
@CertainPerformance OK,但含义类似。您没有将html代码放入新代码段中,因此document.getElementById不会获得任何元素。如果元素已明确定义,代码可能在加载文档之前运行。尝试将脚本移动到body标记的末尾。这意味着
getElementById
将返回
undefined
。文档中是否存在具有该确切ID的元素?@OzzyWalsh否,这意味着
getElementById
返回
null
@CertainPerformance OK,但含义类似。您没有将html代码放入新代码段中,因此document.getElementById不会获得任何元素。如果元素已明确定义,代码可能在加载文档之前运行。尝试将脚本移动到body标记的末尾。我可以知道这段代码有什么错误吗?嗨,谢谢,我错过了引号,但主要问题是DOM没有完全加载,所以我将它包装在一个函数中,就像我接受答案中建议的那样,但引号+1,并取消投票反对你的人;)谢谢你的支持我可以知道这段代码有什么错吗?嗨,谢谢,我错过了引号,但主要问题是DOM没有完全加载,所以我将它包装在一个函数中,就像我在回答中建议的那样,我接受了,但引号+1,并取消了投票反对你的人;)谢谢你的支持谢谢这有效但我也错过了引语谢谢这有效但我也错过了引语