0

以下代码在页面加载之前触发。现在我已经设法用值填充选择。但我不确定如何使第一个值成为默认选择值。

$(document).on('pagebeforeshow', '#searchpage',
//This function is the whole function that runs when the pagebefore event occurs
function () {
    //This reads the universities from the api we created
    $.getJSON(AddressAccess + "Home/university/format/json",

    function (data) {
        //The data is sent back in a collection of objects. We need to extract each object and do relative operations
        for (var i = 0; i < data.length; i++) {
            var university = data[i];
            var SelectDropDown = document.getElementById("searchuniversity");
            var NewOption = new Option(university.Name, university.UniverstiyID);

            if (i == 1) {
                SelectDropDown.add(NewOption, Selected);
            } else {
                SelectDropDown.add(NewOption);
            }

        };
    });
});

现在,如果我使用SelectDropDown.add(NewOption,Selected);只有一个选项作为选择中的一个选项,我想要的只是将从我的 json 数据中读取的第一个选项作为出现在选择中的默认选项。

4

2 回答 2

0

设置selectedIndexSelectDropDown1:

if (i == 1) {
  SelectDropDown.add(NewOption);
  SelectDropDown.selectedIndex = 1;
}

如果您真的在谈论选项列表中的第一个selectedIndex选项,则应该为 0。元素的options数组select从零开始。

[编辑]根据您的评论:
也许select已经包含一个空白选项。尝试:

if (i < 1) {
  SelectDropDown.options.length = 0;
  SelectDropDown.add(NewOption);
  SelectDropDown.selectedIndex = 0;
}
于 2013-02-02T17:24:14.557 回答
0

只需将defaultSelected元素的属性设置为 true:

var newOption = new Option(university.Name, university.UniverstiyID);
newOption.defaultSelected = true;

或者使用Option构造函数的参数:

var newOption = new Option(university.Name, university.UniverstiyID, true, true);
于 2013-02-02T18:36:18.093 回答