0

我有一个允许多项选择的 HTML 选择元素。我正在使用 ajax 请求的结果填充选项。我正在向选项添加自定义属性。在一个实例中,当另一个 ajax 请求完成时,我想更新多选值。我有以下 javascript 方法来做这个选择:

// select = id of the select control.
// selected = list of json objects with an id representing those that are selected.
updateSelection = function( select, selected ) {
    $('#'+select+' option').each( function() {
        var item = $(this);
        $.each(selected, function() {
            item.removeAttr( "selected" );
            if ( this.id === parseInt(item.attr("optionId"), 10 )) {
                alert( "selecting " + item.text());
                item.attr("selected", true );
            }
        });
    });
};

运行该方法之前的 HTML 如下所示:

<select id="putPlatforms" multiple="multiple">
    <option optionid="1" optionversion="1">PC</option>
    <option optionid="3" optionversion="1">Xbox 360</option>
</select>

在仅选择“PC”的情况下,做出选择并反映在 UI 中。如果仅选择“Xbox 360”,则相同。如果应该选择 BOTH 选项,我会看到提示将同时选择这两个选项,但只选择 Xbox 360。

4

1 回答 1

0

使用这个问题的答案,我能够使它工作。我将我的功能更改为以下内容:

// select = id of the select control.
// selected = list of json objects with an id representing those that are selected.
updateSelection = function( select, selected ) {
    $('#'+select+' option').attr('selected', false );
    $.each(selected, function() {
        $('#'+select+' option[optionid='+this.id+']').attr('selected', true );
    });
};
于 2013-01-01T05:13:21.023 回答