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

How to get the selected value of a dynamic drop down in js

本文关键字:下拉列表 动态 获取 js      更新时间:2023-09-26

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

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()

你打电话

$('#jobDropDown1').val()

但你选择看起来像

<select id="jobDropDown'

1添加到其 id 中,它将完成

你重复了id s(你不应该这样做(。您有 2 个选择:

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

2(如果你不能不想要,你应该做:

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

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

希望这有帮助。干杯

从您发布的代码来看,您正在创建两个具有相同id的元素 - select和前面的div。来自 jQuery 文档:

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

这意味着您的代码正在尝试获取div元素的value,而不是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');