无法使用Jquery从select中选择第一个元素

时间:2012-06-27 13:46:22

标签: javascript jquery jquery-ui

我根据第一个下拉列表中选择的值填充下拉列表。从服务器发回的数据是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。”

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

1 个答案:

答案 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。

Fiddle