ajax:onreadystatechange调用的函数的返回值问题

来源:百度知道 编辑:UC知道 时间:2024/05/12 15:21:20
我在页面的表单上有一个提交验证<form onSubmit="return yanzheng()" .....>
在yanzheng()函数里用到ajax对一个文本域进行服务端数据验证,其中
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
if (xmlHttp.responseText=="false")
{
alert("此证件号码已是在籍学生!\n请您核实后,重填");
oo.focus();
return false;
}else
{
return true;
}

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() 动作就好了 :)