2012-05-14 62 views
0
$("#county_id").change(function() { 
    $("#vice_county_id").html("<option value=\"\">-- Select One --</option>"); 
    var co_id = $(this).val(); 
    if(co_id != 0) { 
     $.getJSON('./php/includes/vice_county_web_service.php?co_id=' + co_id,function(data) { 
      $.each(data, function() { 
       $("#vice_county_id").append($("<option></option>").val(this['vice_county_id']).html(this['vice_county_name'])); 
      }); 
     }); 
    } 
}); 

嗨,夥計, 我有上面的代碼加載選項在一個下拉根據選擇在另一個。它工作正常,但完成這一點,我試圖讓它變得粘稠。即如果表格被張貼並且縣有一個已經選擇的值,那麼副縣會預加載相關選項。基本上在加載時啓動.change功能。我已經嘗試過.load和triggerhandler的功能,但它似乎沒有工作。有任何想法嗎??謝謝。如何在回發後在下拉列表中保留選定的值?

回答

0

據我所知,爲了預先填充表單,您需要使用服務器端代碼。你說用戶將他的代碼發佈到某個地方,但你沒有說明如何處理表單文章。

我使用ASP.net在哪裏工作,所以我將有一個服務器端屬性爲每個下拉列表的值。然後,當頁面呈現時,我將該屬性的值打印到我的JavaScript代碼中。您需要讓JavaScript代碼將屬性selected='selected'添加到您希望在頁面加載時選擇的選項中。

更新: 聽起來好像你在說你選擇下拉菜單1,然後自動填充下拉菜單2的選項。這聽起來像問題是下拉2無法保留回發後,因爲它的選項填充後頁面加載(通過AJAX)。我相信解決您的問題的方法是在您通過AJAX成功獲取下拉選項時運行代碼中的選定屬性。

 $.each(data, function() { 
      $("#vice_county_id").append($("<option></option>").val(this['vice_county_id']).html(this['vice_county_name'])); 
      //Check if the option being added was previously selected. 
     }); 
+0

感謝您正確的,這就是我做的方式。粘性功能在所有領域的表單上都非常完美。 county_id被保留在paghe重新加載我只是不能讓jquery觸發ajax調用來填充vice_county_id組合框。乾杯 – jiraiya

0

使用Cookie存儲下拉更改事件的值。

並且當表單加載時使用相同的cookie來檢索值並顯示用戶所選的內容。

但不推薦使用此任務維護cookie。

如果是JSTL頁面,則可以使用JSTL。

曲奇創建guidlines http://www.quirksmode.org/js/cookies.html

相關問題