2010-10-05 79 views
1

我正在做我的第一個Web應用程序(不是新的編程),我有一個小問題,我知道爲什麼我有它,但我需要一種方法來整理它。更新Ajax後的輸入字段

我在頁面上做了一個ajax文章,ajax文章使用兩個隱藏的字段來檢索一些數據,將它發送到Action並獲取一些json來顯示。完善。

問題是,我正在改變頁面的內容與該AJAX職位。它只是一個日曆,我有一個鏈接可以在幾個月之間移動。我使用2個隱藏字段來跟蹤月份和年份(我使用這2個值傳遞給動作並更改月份)。

我的問題是,當我點擊鏈接,月份改變(我的代碼是OK),但DOM仍然是舊的。

問題是,我使用2個隱藏的字段來跟蹤實際的月/年,因爲我需要在jQuery上的值(似乎如果我需要使用我的模型數據與jQuery我必須將其保存在隱藏值並在稍後檢索)。當我通過ajax更改月份時,我期望2個隱藏字段更新其值...

<input id="curMon" type="hidden" value="<%: Model.Month %>" /> 
<input id="curYear" type="hidden" value="<%: Model.Year %>" /> 

...隨着新的月份數據。

我知道,當你做一個ajax後,DOM仍然是舊的。我試着用livequery:

$("#forward").live("click", function() {     

      $.post($(this).attr("href"), function (response) { 
       $("#calendar").replaceWith($(response).filter("div#calendar")); 
       loadDays(currentMonth); 
      }); 
      return false; 
     }); 

轉發是鏈接。日曆是包含日曆和兩個隱藏字段的div。 loadDays只是讓一些JSON來改變日曆上的東西。

currentMonth是:

 var month = $("#curMon").val(); 
     var year = $("#curYear").val(); 

     var currentMonth = { Month: month, Year: year }; 

嗯,我需要的是,當我通過AJAX改變了一個月,我可以從隱藏字段,而不是舊的獲得新的價值。

有沒有辦法做到這一點,或者我這樣做是困難的?

回答

1

看起來你並沒有更新月份和年份變量的值,只需將選擇器分配給變量,以便更新currentMonth。

var month = $("#curMon"); 
    var year = $("#curYear"); 

    var currentMonth = { Month: month.val(), Year: year.val() }; 

當月需要在代碼的直播部分被重新分配,或者你可以做到這一點

$("#forward").live("click", function() {     

     $.post($(this).attr("href"), function (response) { 
      $("#calendar").replaceWith($(response).filter("div#calendar")); 
      loadDays({Month: $("#curMon").val(), Year: $("#curYear").val() }); 
     }); 
     return false; 
    }); 
+0

是的,我認爲我的問題就是這麼簡單,耶。當我下班回來時,我必須嘗試。我已經在document.ready上做了這些工作,並且該代碼只在第一次加載頁面時運行。我會稍後檢查。謝謝。 – 2010-10-06 07:49:50