javascript - ajax提交表单不成功
巴扎黑
巴扎黑 2017-04-10 17:27:57
[JavaScript讨论组]

有一个注册表单,在点注册按钮后验证提交(验证通过后,ajax提交表单),我对ajax不怎么会,找了大量资源,弄出来的,我自己都看不懂,算了,还是上代码:

r_sub.addEventListener("click", function() {//提交按钮

        var l_form = document.getElementById("l_form");//获取表单
        if(requ() == "false") {//验证方法返回值
            alert(false);
        } else {

// l_form.submit();//以前的提交方式

            onreadystatechange();//ajax(这里错了,控制台报错未定义)
        }
    })

    function requ() {//验证方法
        ...//验证表单项,并返回值
    }

    var request;//这里开始,是网上的demo.
    if (window.XMLHttpRequest) {//网上说的标准和IE混合写法
        request = new XMLHttpRequest();
    } else {
        request = new ActiveXObject('Microsoft.XMLHTTP');
    }
    function success(text) {//这个不知道是什么方法
        var textarea = document.getElementById('l_form');//这个obj我改成我的表单id
        textarea.value = text;
    }

    function fail(code) {//这个不知道是什么方法
            var textarea = document.getElementById('l_form');//这个obj我该成我的表单id
        textarea.value = 'Error code: ' + code;
    }

// var request = new ActiveXObject('Microsoft.XMLHTTP'); // 新建Microsoft.XMLHTTP对象

    request.onreadystatechange = function () { // 状态发生变化时,函数被回调
        if (request.readyState === 4) { // 成功完成
    // 判断响应结果:
            if (request.status === 200) {
            // 成功,通过responseText拿到响应的文本:
                return success(request.responseText);
            } else {
        // 失败,根据响应码判断失败原因:
                    return fail(request.status);
            }
        } else {
    // HTTP请求还在继续...
        }
    }

// 发送请求:

    request.open('post', "register");//这个url是我框架弄成这样的,想直接提交到本页面,不过还是没效果
    request.send();

总之,就是上面这一坨什么东西,因为直接submit方法需要跳转页面(不跳转也需要有结果能显示在页面上),用户在注册后,表单提交,并返回提交结果(我的想法是submit到控制器,然后控制器再把数据存入数据库),并将结果显示到页面上(这两步还未实现,只希望先实现ajax异步提交注册表单就可以了),希望看官能帮忙捋顺一下,或者帮忙实现一下,最好加上相应的步骤注释,方便某研究学习

巴扎黑
巴扎黑

全部回复(1)
大家讲道理
if(requ() == "false") {//验证方法返回值
    alert(false);
    return ; // 验证不正确时,返回,不在走下面代码,发ajax
} 
// else中的代码没有必要写。而且onreadystatechange函数你是放在request.onreadystatechange,不是
// var onreadystatechange = function(){...}
/*else { 
    onreadystatechange();//ajax(这里错了,控制台报错未定义)
}*/
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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