-1

我有两个多重选择,我可以在其中来回传输项目,这在所有浏览器中都很完美。我的问题是在 IE9 中.each()似乎没有运行。基本上我正在做的是运行一个.each()在我提交之前选择所需多选中的所有项目。在 IE9 中,当我单击提交时,select2从未选择过任何项目。

JSFIDDLE

查询

/* multi-select handler */
$('#add').click(function()
{  
    return !$('#select1 option:selected').remove().appendTo('#select2').removeAttr("selected"); 
});  
$('#remove').click(function()
{  
    return !$('#select2 option:selected').remove().appendTo('#select1').removeAttr("selected");  
});

/* submit button handler */
$('#submit').click(function)
{
    /* select all items in select2 */
    $('#select2 option').each(function()
    { 
        $(this).attr("selected","selected");
    });

    /* check to see if any items were selected */
    if( $('#select2 option').length === 0 )
    {
        alert('no items selected');
    }
    else
    {
        alert('success'); 
    }
}); 

HTML

<div class="multi-select-container">       
    <div class="multi-select-left">
        <select multiple id="select1">
            <option value="1">One</option>
            <option value="2">Two</option>
            <option value="3">Three</option>
            <option value="4">Four</option>
            <option value="5">Five</option>
            <option value="6">Six</option>
        </select>             
    </div>  
    <div class="multi-select-center">
        <button id="add" class="btn btn-mini btn-add" style="display:block;margin:5px;">Add</button>
        <button id="remove" class="btn btn-mini btn-delete" style="display:block;margin:5px;">Remove</button>
    </div>
    <div class="multi-select-right"> 
        <select multiple id="select2"></select>               
    </div> 
</div>
4

2 回答 2

3

尝试替换这个:

$(this).attr("selected", "selected");

这样 :

$(this).prop("selected", true);
于 2013-07-26T20:52:21.517 回答
-1

我认为问题是不会在 jquery 中修复。我认为您必须避免使用 attr 功能。

于 2013-07-26T20:47:07.467 回答