如何在js中获取动态下拉列表的选定值

时间:2011-07-06 07:13:11

标签: javascript jquery drop-down-menu

我正在模板中创建动态下拉列表。我无法得到那些选定的值。

var newjobDropDown = $(document.createElement('div')).attr("id", 'jobDropDown' + counter);

newjobDropDown.after().html('<label><?php echo __(Job Vacancy); ?></label>' +
                            '<select  id="jobDropDown' + counter +'"'+' onchange="validate()"'+' class="vacancyDrop"'+'>'+buildVacancyList()+'</select>'+
                            '<span onclick="removeDrop(event)"'+'class="removeText"'+ 'id="removeButton'+counter+'">'+remove+'</span>'+'<br class="clear" />');

newjobDropDown.appendTo("#TextBoxesGroup");

我使用以下代码获取值,但我得到一个空值。

$('#jobDropDown1').val()

3 个答案:

答案 0 :(得分:1)

根据您发布的代码,您似乎正在创建两个具有相同id的元素 - select和前一个div。来自jQuery docs

  

如果有多个元素   分配了相同的ID,使用的查询   该ID只会选择第一个   DOM中的匹配元素。

这意味着您的代码正在尝试获取value元素的div,而不是select。尝试为div提供不同的id

var newjobDropDown = $(document.createElement('div')).attr('id', 'jobDropDown_div' + counter);

newjobDropDown.after().html('<label><?php echo __(Job Vacancy); ?></label>' +
                            '<select  id="jobDropDown' + counter +'"'+' onchange="validate()"'+' class="vacancyDrop"'+'>'+buildVacancyList()+'</select>'+
                            '<span onclick="removeDrop(event)"'+'class="removeText"'+ 'id="removeButton'+counter+'">'+remove+'</span>'+'<br class="clear" />');

newjobDropDown.appendTo('#TextBoxesGroup');

答案 1 :(得分:1)

你打电话

$('#jobDropDown1').val()

但你选择的是

<select id="jobDropDown'

1添加到其ID中,它将执行操作

答案 2 :(得分:1)

你已经重复了id(你不应该)。 你有两个选择:

1)更改为不同的ID,然后通常使用jquery选择它

2)如果你不想要,你应该这样做:

$('select#jobDropDown1').val()

有了这个,我们用标签名称区分两个相等的ID。

希望这会有所帮助。干杯