1

我有一个使用 Jquery 选择选项的 HTML 页面,如下所示。

<select id="select-stage" class="spinner" data-inline="true" >
    <option value="-1">-Select Stage-</option>
</select>

现在这个选择选项的内容是由 ajax 调用结果动态给出的。

这是它的样子

在此处输入图像描述

我现在的问题:

现在我的问题是当我第一次单击该user选项时,它没有被选中。但是,其他选项HOD1,HOD2HOD3正在被正确选择。

此外,此问题仅在加载后第一次发生。如果我选择其他选项然后再次选择user它被选中。

它不是第一次被选中。我无法发现问题。

有人可以帮忙吗?

设置选项的代码:

var option=[];
$.each(myData, function(key, val) {
    sessionStorage.setItem(trim(val),trim(key));
    option.push('<option value="' + trim(key) + '">' + trim(val) + '</option>');
});
$('#select-stage').html(option.join(''));
}

//changing values on user selection//
$('#select-stage').live('change',function(){
    stageId = sessionStorage.getItem($(this).find('option:selected').text());
    selecttext = $(this).find('option:selected').text();
    noselection = true;
    listStageselectedIndexChanged(selecttext);
});
4

1 回答 1

2

这是因为您要替换select- 中已选择的第一项,因此永远不会触发更改事件。

您需要将其中的-Select Stage-选项保留为默认选项,并在其下方附加新选项。然后选择任何其他选项时,change将触发事件。

更新

要实现这一点,请修改您的代码以添加默认选项,如下所示:

var option=[];
$.each(myData, function(key, val) {
    sessionStorage.setItem(trim(val),trim(key));
    option.push('<option value="' + trim(key) + '">' + trim(val) + '</option>');
});
$('#select-stage')
    .html(option.join(''))
    .prepend('<option value="-1">-Select Stage-</option>')
    .val('-1');
于 2013-02-06T08:43:29.757 回答