0

我正在根据第一个下拉列表中选择的值填充下拉列表。从服务器发送回的数据采用 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是我试图从从服务器获取的 JSON 数据中填充的第二个下拉列表的 ID。

填写下拉菜单后,它还会创建一个空选项标签,默认情况下它会被选中。我不确定是否可以为该空选项添加一些默认值,以便我可以选择该默认选项值,例如“请选择 bla bla”。

我也尝试从下拉列表中选择第一个元素,但似乎没有什么对我有用。我想知道我在这里做错了什么?

4

1 回答 1

0

根据您的问题,您似乎想知道如何在动态填充的选择列表中更改元素的值和文本。

目前,您有此$("#jobName")[0].selectedIndex = 1;声明outside of your getJSON request。如果将它移到 getJSON 函数内部,它将按预期工作。

如果要设置该对象的值和文本,则需要使用 ->

$('#jobId option:first').val("Some Value").text("other stuff");

您可以使用来自 JSON 对象的动态填充选择列表来查看工作中的 JS Fiddle。

小提琴

于 2012-06-27T14:10:03.610 回答