作者 主題: ajax載入網頁刷新問題  (閱讀 4404 次)

0 會員 與 1 訪客 正在閱讀本文。

john70480

  • 可愛的小學生
  • *
  • 文章數: 12
    • 檢視個人資料
ajax載入網頁刷新問題
« 於: 2011-07-26 11:19 »
<script type="text/javascript">
$(function() {
   $( "#dialog-form" ).dialog({      
      autoOpen: false,
      height: 450,
      width: 850,
      modal: true
   });
   $("#add").click(function(){
      $("#dialog-form").dialog( "open" );
      //$("#dialog_contant").load('./nic_add.cgi');
      $("#dialog_contant").load('./nic_add.cgi',function(){
         $("#myform").validate({
            rules:{     
               f01:{     
                  remote: {
                     url: "../public/ajax/Network_Settings/nic_ck.cgi",     //後台處理程序
                     type: "POST",               //數據發送方式
                     cache: false,
         //             dataType: "html",           //接受數據格式
                     data: {                     //要傳遞的數據
                        f01: function() {
                           return $("input[name=f01]").val();
                        },
                        id: function() {
                           return $("input[name=id]").val();
                        }                     
                     }
                  }   
               }
            },
            messages: {
               f01: {
                  remote: "tests"
               }
            },
            submitHandler:function(form) {
               var a = $("#myform").serialize();
               $.ajax({
                  url: "./nic_add.cgi",
                  type: "post",
                  data: a,
                  //dataType: "json",           //接受數據格式
                  success: function(data){
                     $("#dialog_contant").html(data);
                     //$("#dialog-form").dialog( "close" );
                  }
               });   
            }
         });            
      });   
   });
});
</script>

其實我主要的問題是
我現在在同一個網頁視窗中點了新增這個按鈕
會把一個隱藏的div區塊顯示
把div內的區塊ajax一個網頁
我現在卡在我ajax的那個網頁
我要他新增完資料後他會自動把目前這個網頁整個刷新
不過我新增的那個網頁他要處理一些程序需要花很久的時間
所以我有個等待的頁面
要等他全部跑完才會刷新
<meta http-equiv="refresh" content="0; url=nic.cgi">
程式碼本身是可以work
但只有在chrome是成功的
再IE上他卻好像不執行這段<meta http-equiv="refresh" content="0; url=nic.cgi">
我的程式碼其實不用看太多
只要用紅色那段取代下面的就好了
load新頁面隻後馬上刷新本頁
我在ie上一直失敗
網路上又找不到相關資料
我真的很困擾
我有試著在nic_add.cgi
那頁使用這種方法
<script>
   $(document).ready(function(){
      $("#dialog-form").dialog( "close" );
      location.reload();
   })         
</script>   
可是出來的效果卻是馬上刷新
沒有等原本網頁跑完就刷新了
請各位高手救救我
« 上次編輯: 2011-07-26 11:24 由 john70480 »

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: ajax載入網頁刷新問題
« 回覆 #1 於: 2011-07-28 10:04 »
我有試著在nic_add.cgi
那頁使用這種方法
<script>
   $(document).ready(function(){
      $("#dialog-form").dialog( "close" );
      location.reload();
   })         
</script>   
可是出來的效果卻是馬上刷新
沒有等原本網頁跑完就刷新了

既然是要等『處理一些程序』跑完之後刷
那就應該將 location.reload() 放在 『一些程序』之後執行呀
放在 nic_add.cgi, 當然就是 nic_add.cgi 內容載入後就直接執行囉