jQuery填充的<select>选项值不提交</select>

时间:2011-05-05 16:30:39

标签: jquery

我有一个<select class="fiLocations"></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');
}

}

未提交所选选项的值!硬编码选项确实提交。 我认为我需要通知浏览器所做的更改......我该怎么做?

2 个答案:

答案 0 :(得分: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函数之前。

答案 1 :(得分: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');
    }
}