2017-07-20 27 views
1

調用location.reload()後顯示隱藏字段值。如何在ajax成功調用location.reload()後顯示隱藏字段值

var ajaxRequest = $.ajax({ 
      type: "POST", 
       url: "my url",//locating to another project action method which is already deployed and running in server 
      contentType: false, 
      processData: false, 
      data: data 
     });  
ajaxRequest.done(function (xhr, textStatus) { 

      location.reload();//reloading page 
      $('#imageUploadScs').show();//displaying hidden field after reloading page 

     }); 
+3

在location.reload()之後寫入的任何命令都不會發生,因爲您在頁面執行之前重新加載了頁面。所以你從頭開始。你的邏輯需要重新思考 – ADyson

+1

你需要堅持價值..例如。在'localstorage'中,然後在重載時取回它 –

+3

做一個頁面重新加載失敗了使用ajax的目的 – charlietfl

回答

0

當你重新加載,頁面重新加載。因此,您對頁面狀態所做的任何更改都會丟失。

所以,你有兩個選擇:

  1. 不要重裝。這是首選。您已經在使用AJAX,只需根據需要更新頁面的狀態即可。你根本不需要重新加載。
  2. 在重新加載之前,請在某處(本地存儲?Cookie?某種性質)持久保留一些標誌,表明該字段應顯示。在頁面的啓動代碼中(你使用的是jQuery,所以我假設document.ready處理程序在這裏是標準的)檢查該標誌並顯示該字段。

第一個選項當然是首選。但是,第二個選項可能結構是這個樣子:

$(function() { 
    var shouldShowField = getPersistedFlag(); 
    if (shouldShowField) { 
     $('#imageUploadScs').show(); 
    } 
}); 

// elsewhere... 
ajaxRequest.done(function (xhr, textStatus) { 
    setPersistedFlag(); 
    location.reload(); 
}); 

getPersistedFlagsetPersistedFlag的實現將是什麼如上所述。他們會讀取和寫入任何你想要保存的數據給你選擇的任何存儲機制。 (其中任何一個都有很多示例可用)。

如果看起來這樣做太過複雜,你可能是對的。這就是爲什麼不首先重新加載頁面的第一種選擇是首選。

+0

謝謝你的寶貴答案 – Naseer

相關問題