2012-06-27 249 views
0

我正在根據第一個下拉列表中選定的值填充下拉列表。從服務器返回的數據是JSON格式並使用JQuery解析並填充第二個選擇標記無法從選擇中使用Jquery選擇第一個元素

<select name="abc" id="jobName"> 
    <option value="-1">Please select a Job</option> 
</select> 

這是我的Jquery代碼

var selectedGroup = document.getElementById(groupDropDownId); 
var groupdata = selectedGroup.options[selectedGroup.selectedIndex].value; 
var formInput='group='+groupdata; 

$.getJSON('search/getSchedulerJobListForGroup',formInput,function(data) { 

    $('.result').html('' + data.jobList + ''); 
    $.each(data.jobList,function(index, value){ 
    var jobId = document.getElementById(resetDropDownId); 
    var option=new Option(value,value); 
    try{ 
     jobId.add(option); 
     } 
     catch(e){ 
      jobId.appendChild(option); 
     } 
     }); 
     }); 

    $("#jobName")[0].selectedIndex = 1; 
    // $("#jobName").val($("#triggerjobName option:first").val()); 

在上面的代碼groupDropDownId是下降的ID向下根據其值,第二下拉將被填充。 resetDropDownId是我試圖從服務器獲取的JSON數據中填充的第二個下拉列表的ID。

一旦填充下拉列表,它也會創建一個空的選項標籤,並且默認情況下它將被選中。 我不確定是否可以向該空白選項添加一些默認值,以便我可以選擇默認選項值,如「請選擇bla bla」。

另外我試圖從下拉列表中選擇第一個元素,但沒有任何東西似乎適用於我。我想知道我在這裏做錯了什麼?

+0

如果你格式化你的代碼,以便它更易讀,而且也說明了所使用的變量,但沒有定義,在來自它的代碼會有所幫助。 –

回答

0

根據你的問題,它看起來像你想知道如何改變動態填充選擇列表中元素的值和文本。

當前,您有這種說法$("#jobName")[0].selectedIndex = 1;outside of your getJSON request。如果將其移入getJSON函數內部,它將按預期工作。

如果你要設置的值,該對象的文本,你需要使用 - >

$('#jobId option:first').val("Some Value").text("other stuff"); 

可以使用從JSON對象動態填充的選擇列表中看到一個工作JS提琴。

Fiddle