<cite id="7sx54"></cite>
        <tt id="7sx54"></tt>
        關于asp.net網頁中Button按鈕的OnClientClick事件中,使用ajax不起作用的問題
        搜收錄網整理 發布日期:2020/7/9 16:51:17
        今天修改網頁的時候,給一個服務器空間Btton按鈕加了一個OnClientClick客戶端事件,當驗證不通過是不執行服務器端OnClick事件。OnClientClick驗證函數中。使用jquery 的post方法,修改完之后發現,只能執行客戶端的驗證,ajax事件并不執行,無論post中返回ture還是false,都沒有任何作用。錯誤代碼如下:
        $.post("/ajax/users.ashx", { _type: "getustools", cls: "16" },
                function (data) {
                    if (data == "0") {
                        Dialog2.open(420, 439);
                        return false;
                    }
                });
        分析后意識到這是因為post方法是異步執行。所以,當js執行到post的時候。就不會管post的返回了。就直接跳過了post函數體里的代碼。解決方法是使用jquery的ajax函數。在ajax可以設置一個參數。async,把async設置為false,就不在是異步執行了,就是同步執行了。這樣就完美解決了這個問題。代碼如下:
        $.ajax({
               url : "/ajax/users.ashx",
               data:{ _type: "getustools", cls: "16" },
               cache : false, 
               async : true,
               type : "POST",
               dataType : 'text',
               success : function (result){
                 return result;
               }
             });
        修改完之后,運行程序發現問題并沒有解決,上網搜索下,出錯的原因是在success的回調函數中直接return,至于為什么不能這么做還不是太清楚。正確解決辦法如下
        var ret = null;
        $.ajax({
               url : "/ajax/users.ashx",
               data:{ _type: "getustools", cls: "16" },
               cache : false, 
               async : true,
               type : "POST",
               dataType : 'text',
               success : function (result){
                 ret = result;
               }
             });
        return ret;

        至此OnClientClick事件中,使用ajax不起作用的問題完美結局


        信息網址:http://www.sacbl.com/ziyuan/view17838.htm
        相關信息
        日本在线无码中文一区免费