首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用onreadystatechange

未调用onreadystatechange
EN

Stack Overflow用户
提问于 2017-03-28 16:26:36
回答 3查看 1.1K关注 0票数 1

我期望在调用show_Message函数时出现一个警报框,但onreadystatechange不是working.The,其他警报框工作正常

下面是我的js函数

代码语言:javascript
复制
 function send_Message(){
  var msg=document.getElementById("msg").value;
if(msg.length===0||msg===""){
    alert("please enter some message");
    return;
}

var sender=document.getElementById("username").value;
var sendto=document.getElementById("chat_id").options[document.getElementById("chat_id").selectedIndex].value;
alert(sender+" "+sendto);
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
    alert('hello');
    if(xhttp.readyState==4 && xhttp.status==200){
        document.getElementById("chat_logs").innerHTML=xhttp.responseText;
    }
    xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);
    xhttp.send(null);
}
 }
EN

回答 3

Stack Overflow用户

发布于 2017-03-28 16:30:13

xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true); xhttp.send(null);

应该在onreadystatechange之外

将其更改为

代码语言:javascript
复制
function send_Message(){
  var msg=document.getElementById("msg").value;
if(msg.length===0||msg===""){
    alert("please enter some message");
    return;
}

var sender=document.getElementById("username").value;
var sendto=document.getElementById("chat_id").options[document.getElementById("chat_id").selectedIndex].value;
alert(sender+" "+sendto);
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
    alert('hello');
    if(xhttp.readyState==4 && xhttp.status==200){
        document.getElementById("chat_logs").innerHTML=xhttp.responseText;
    }
}
xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);
    xhttp.send(null);
 }
票数 0
EN

Stack Overflow用户

发布于 2017-03-28 16:40:59

你犯了结束语的错误。xhttp.onreadystatechange=function(){

上面的函数应该在if语句之后关闭。

检查下面更正的代码:

代码语言:javascript
复制
function send_Message(){
  var msg=document.getElementById("msg").value;
if(msg.length===0||msg===""){
    alert("please enter some message");
    return;
}

var sender=document.getElementById("username").value;
var sendto=document.getElementById("chat_id").options[document.getElementById("chat_id").selectedIndex].value;
alert(sender+" "+sendto);
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
    alert('hello');
    if(xhttp.readyState==4 && xhttp.status==200){
        document.getElementById("chat_logs").innerHTML=xhttp.responseText;
    }
}; 
    xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);
    xhttp.send(null);

 }
票数 0
EN

Stack Overflow用户

发布于 2017-03-28 16:32:21

这可能是因为您在onstatechange内部使用了打开和发送函数。

代码语言:javascript
复制
function send_Message(){
  var msg = document.getElementById("msg").value;
  if( msg.length === 0 || msg === "" ){
    alert("please enter some message");
    return;
  }

  var sender=document.getElementById("username").value;
  var sendto=document.getElementById("chat_id").options[document.getElementById("chat_id").selectedIndex].value;
  alert(sender+" "+sendto);

  var xhttp=new XMLHttpRequest();
  xhttp.onreadystatechange=function(){
    alert('hello');
    if(xhttp.readyState==4 && xhttp.status==200){
        document.getElementById("chat_logs").innerHTML=xhttp.responseText;
    }
  }

  xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true);
  xhttp.send(null);
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43064361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档