我正在模板中创建动态下拉列表。我无法得到那些选定的值。
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()
答案 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。
希望这会有所帮助。干杯