最近在处理登录页面样式修改时,发现后台处理用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验证后才会提交到控制器

posted on 2016-04-15 13:51  LisaLi  阅读(4219)  评论(0编辑  收藏  举报