Thinkphp AjaxReturn 返回结果直接显示在处理页面


最近在处理登录页面样式修改时,发现后台处理用ajaxReturn后的json数据直接在IndexAction上输出,不返回到login.html了。

HTML文件:

1   <button type="button" class="btn btn-warning btn-block" id="btn_login">登录</button>

JS文件

<script>
    document.onkeydown=function(event){
        e = event ? event :(window.event ? window.event : null);
        if(e.keyCode==13){
            $('#btn_login').click();
        }
    };
    $(function () {
        $('#username').focus();

        $('#btn_login').click(function(){
            var u=$('#username').val();
            var p=$('#password').val();

            if (u == "") {
                layer.tips('请输入用户名', '#username', {
                    tips: [2, '#0FA6D8'] //还可配置颜色
                });
                return false;
            }
            if (p == "") {
                //layer.msg('请输入密码',function(){});
                layer.tips('请输入密码', '#password', {
                    tips: [2, '#0FA6D8'] //还可配置颜色
                });
                return false;
            }

            $.ajax({
                url: '__URL__/login',
                type: "post",
                data:{
                    'username':u,
                    'password':p
                },
                dataType:'json',
                error:function(){
                    //layer.msg('无法访问数据库,请检查你的数据库配置',function(){})
                },
                success:function(data){

                    if(data.error==0){
                        location.href=data.url;
                    }else{
                         layer.tips(data.msg, '#password', {
                            tips: [2, '#0FA6D8'] //还可配置颜色
                        });
                    }
                }
            });
        });
    });
</script>

如果将 button的type改为submit,那么就会出现上述问题, 修改type=button就可以正常返回了。

或者使用  event.preventDefault();是阻止表单默认提交事件的,如果去掉那么即使js验证不通过,表单也会提交到控制器。加上这句后只有通过js验证后才会提交到控制器


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM