Javascript 如何在实时ajax搜索栏上停止输入重置
我试图在keyup事件上制作一个实时的ajax搜索栏 当我键入一个字符时,页面将更改url并重置输入文本。当我写入更多字符时,如何防止页面刷新Javascript 如何在实时ajax搜索栏上停止输入重置,javascript,ajax,Javascript,Ajax,我试图在keyup事件上制作一个实时的ajax搜索栏 当我键入一个字符时,页面将更改url并重置输入文本。当我写入更多字符时,如何防止页面刷新 <script type="text/javascript"> function getSearch(str){ var u = document.getElementById("search").value; if(str.length == 0){ status.inn
<script type="text/javascript">
function getSearch(str){
var u = document.getElementById("search").value;
if(str.length == 0){
status.innerHTML = 'field is empty';
}
if(u != "") {
se.onreadystatechange = function(){
if (se.readyState == 4 && se.status == 200){
status.innerHTML = se.responseText;
}
}
}
}
</script>
函数getSearch(str){
var u=document.getElementById(“搜索”).value;
如果(str.length==0){
status.innerHTML='字段为空';
}
如果(u!=“”){
se.onreadystatechange=函数(){
如果(se.readyState==4&&se.status==200){
status.innerHTML=se.responseText;
}
}
}
}
您的ajax请求缺少一些配置。您需要告诉请求本身它应该调用哪个url,并指定方法。只需更改这些行:
status.innerHTML = 'Verifying...';
//window.location.replace("search.php?search="+str);
// this is why your page reloads. you want to remove this
var se = new XMLHttpRequest();
se.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
se.onreadystatechange = function(){
if (se.readyState == 4 && se.status == 200){
status.innerHTML = se.responseText;
}
}
se.open('POST',"search.php?search="+str);
// you need to open the request, specifying the method and the url
se.send();
这里有一个有趣的@LelioFaieta,你对ajax还不清楚。即使页面重新加载,也会出现ajax请求。页面是否重新加载与此无关。AJAX本身就是AJAX。是的,我试过了,但问题是在旧页面的上方出现了一个新页面,这就是为什么我将window.location.replace(“search.php?search=“+str”);代替se.open('POST',“search.php?search=“+str”);这意味着您的
var status=document.getElementById(“内部”)代码>使用的元素太宽。确保选择要替换内容的元素,并确保search.php
只返回所需的html,而不是包含
和
的整个html页面