请问个AJAX有关问题

php中文网
发布: 2016-06-13 13:30:25
原创
1079人浏览过

请教个AJAX问题

JScript code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
     function nums(){
        var n = document.natform.num.value;
            
        var url="index.php?c=nat&a=natid&id="+n+"";
        if(n == ''){
            document.getElementById('num').style.display='block';
            document.getElementById('num').innerHTML='编号不能为空';
            document.getElementById('num').style.color='red';
            return false;
        }else{
            xmlHttpRequest = createXmlHttpRequest();
            xmlHttpRequest.onreadystatechange = handle;
            xmlHttpRequest.open("GET",url,true);
            xmlHttpRequest.send(null);
                        //我的问题就是 在这个else里怎么接收到 handle()的返回值(true  false)
        }
    
    }
    function handle(){
        if(xmlHttpRequest.readyState == 4){    
            var re = xmlHttpRequest.responseText;
            if(re){
                document.getElementById('num').style.display='block';
                document.getElementById('num').innerHTML='编号已存在';
                document.getElementById('num').style.color='red';
                return false;
            }else{
                document.getElementById('num').style.display='block';
                document.getElementById('num').innerHTML='可以使用';
                document.getElementById('num').style.color='green';
                return true;
            }
            
        }    
    }

登录后复制


以上是一个ajax 判断 id 是否存在的, 如果不存在,可以提交,如果存在提示已存在,不能提交
JScript code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
    function saves(){
        if(nums()){
            document.natform.action="index.php?c=nat&a=addnatpost";
                    document.natform.submit();
        }
    }

登录后复制

但是现在问题是 num() 接收不到 handle() 的返回值, 所以已存在的时候 num() 状态是未定义的, 请教下这块怎么改

------解决方案--------------------
JScript code

 var re = xmlHttpRequest.responseText;    //这里的re值是多少?alert看看。
//如果没有值,说明是后端接收处理的问题
<br><font color="#e78608">------解决方案--------------------</font><br>
ajax 是异步通讯方式,所以你不可能从 num() 得到正确的返回值<br>你所需要的提交动作应在 handle 中完成 <div class="clear"></div>
登录后复制
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号