我期望在调用show_Message函数时出现一个警报框,但onreadystatechange不是working.The,其他警报框工作正常
下面是我的js函数
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);
}
}发布于 2017-03-28 16:30:13
xhttp.open('GET','send_messages.php?sender='+sender+'sendto='+sendto+'message='+msg,true); xhttp.send(null);
应该在onreadystatechange之外
将其更改为
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);
}发布于 2017-03-28 16:40:59
你犯了结束语的错误。xhttp.onreadystatechange=function(){
上面的函数应该在if语句之后关闭。
检查下面更正的代码:
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);
}发布于 2017-03-28 16:32:21
这可能是因为您在onstatechange内部使用了打开和发送函数。
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);
}https://stackoverflow.com/questions/43064361
复制相似问题