2011-05-05 51 views
0

我有一個<select class="fiLocations"></select>下拉我是從一個數組填充,像這樣jQuery的填充<select>選項值不提交

$(document).ready(function() { 

var fiLocations=["One", "Two", "Three"]; 

for (i=0;i<fiLocations.length;i++){ 
    $('<option/>').val(fiLocations[i]).html(fiLocations[i]).appendTo('.fiLocations'); 
} 

} 

沒有被提交所選選項的值!硬編碼選項提交。 我認爲我需要通知瀏覽器所做的更改......我該怎麼做?

+0

可以顯示一些HTML?也許是一個小提琴? – Neal 2011-05-05 16:32:18

+0

您是否正在追加,然後在屏幕上選擇然後提交? – 2011-05-05 16:38:26

+0

發佈的代碼適合我。你看到下拉菜單中的選項,只是沒有獲得後端的價值? – 2011-05-05 16:47:32

回答

1
var fiLocations=["One", "Two", "Three"]; 

for (i=0;i<fiLocations.length;i++){ 
    var option = "<option SELECTED='SELECTED' value='"+fiLocations[i]+"'>"+fiLocations[i]+"</option>"; 
     $('.fiLocations').append(option); 
} 

我對代碼的編輯在創建選項時添加了選定的屬性。現在您還需要添加選擇器屬性

<select multiple="multiple"> 

因此可以選擇所有選項。但是現在,如果你想讓他們不能選擇,直到調用AJAX,取出selected='selected'參與了創建代碼的功能,然後用

$('.fiLocations option').attr('selected','selected'); 

調用AJAX功能之前。

+0

雖然填充了'value',這不前,你的Ajax選項會將您必須通過\t $(「 fiLocations選項」)選擇了所有選項解決我的問題:( – thv20 2011-05-05 19:11:57

+0

。 ATTR(「選擇」,「選擇」);爲了使值傳遞,或者如果你希望他們選擇在您添加它們,然後添加一個「選擇=‘選擇’值<選項='」 – 2011-05-06 13:55:49

+0

@ thv20卻似乎要解決什麼 – 2011-05-06 18:50:35

0

在您的示例中,當您調用.val()部件時,它實際上並未填充<option>標記的不存在的值屬性。正因爲如此,我認爲你創建的選項不是提交值。

嘗試做這種方式:

$(document).ready(function() { 
    var fiLocations=["One", "Two", "Three"]; 

    for (i=0;i<fiLocations.length;i++){ 
     $('<option/>').attr("value",fiLocations[i]).text(fiLocations[i]).appendTo('.fiLocations'); 
    } 
} 
+0

這個問題上顯示你的ajax函數,幾乎正是我提出的 – 2011-05-05 16:46:08