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