我根据第一个下拉列表中选择的值填充下拉列表。从服务器发回的数据是JSON格式,并使用JQuery解析并填充第二个选择标记
<select name="abc" id="jobName">
<option value="-1">Please select a Job</option>
</select>
这是我的Jquery代码
var selectedGroup = document.getElementById(groupDropDownId);
var groupdata = selectedGroup.options[selectedGroup.selectedIndex].value;
var formInput='group='+groupdata;
$.getJSON('search/getSchedulerJobListForGroup',formInput,function(data) {
$('.result').html('' + data.jobList + '');
$.each(data.jobList,function(index, value){
var jobId = document.getElementById(resetDropDownId);
var option=new Option(value,value);
try{
jobId.add(option);
}
catch(e){
jobId.appendChild(option);
}
});
});
$("#jobName")[0].selectedIndex = 1;
// $("#jobName").val($("#triggerjobName option:first").val());
上面的代码groupDropDownId
中的是基于其值的下拉列表的ID,第二个下拉列表将被填充。resetDropDownId
是第二个下拉列表的ID,我试图从JSON数据获取来自服务器。
在填充下拉列表时,它还会创建一个空的选项标记,默认情况下它会被选中。 我不确定我是否可以为该空选项添加一些默认值,以便我可以选择默认选项值,例如“请选择bla bla。”
我也尝试从下拉列表中选择第一个元素,但似乎没有什么对我有用。我想知道我在这里做错了什么?
答案 0 :(得分:0)
根据您的问题,您似乎想知道如何更改动态填充的选择列表中元素的值和文本。
目前,您有$("#jobName")[0].selectedIndex = 1;
这句话outside of your getJSON request
。如果你在getJSON函数中移动它,它将按预期工作。
如果要设置该对象的值和文本,则需要使用 - &gt;
$('#jobId option:first').val("Some Value").text("other stuff");
您可以使用来自JSON对象的动态填充选择列表来查看正在运行的JS Fiddle。