onreadystatechange(onreadystatechange 大小写)
AJAX中,发送请求的响应所处的onreadystatechange事件,指什么事件?
onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
求教 ajax 进不了onreadystatechange 状态一直是1
今天抽空弄了一下关于Ajax的问题,遇到了你说的这个情况,查询了一下相关解决方案,得到的解答是:在调用函数的时候不能带任何参数,使用()都不行!
具体解决方法是,将你的代码中下面的这一段
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 xmlhttp.status==200){
msg=xmlhttp.responseText;
}
}
拆分开,也就是=后面的写成一个单独的function。比如:
function connect() {
if(xmlhttp.readyState==4 xmlhttp.status==200){
msg=xmlhttp.responseText;
}
}
然后将原先的代码调用修改为xmlhttp.onreadystatechange=connect;
这个地方千万不能写成xmlhttp.onreadystatechange=connect();
也就是connect后面千万别加(),之后readyState的状态就会发生改变了。
这个现象弄的我哭笑不得,但最后的确通过这个方法解决了,祝你好运!
怎么获得onreadystatechange调用的函数的返回值
function yanzheng(){
xmlHttp.onreadystatechange = function()
{
return false;
}
return ture;
}
这里的return false, 是内部function()的返回值,而不是function yanzheng的返回值,第二个,return true才是外层flase的返回值哈 :)
--------------------------------
这里最好不要用onSubmit="return yanzheng()"
也不要用input type="submit"
因为ajax会有个延时和等待,但是函数会立即返回一个值(true/false),因此不适合用在这里作为判断,流程应该是,先判断是否符合,符合再提交,不符合,直接return :)
可以用
input type="button" onclick="yanzheng(this.form)" value="submit" /
如果验证通过, 在函数里面执行 form.submit() 动作就好了 :)