我有两个多选项,我可以来回传输项目,这在所有浏览器中都很完美。我的问题是在IE9中.each()
似乎没有运行。基本上我正在做的是运行.each()
,它将在我提交之前选择所需的多选项中的所有项目。在IE9中,当我单击提交时,select2
中的任何项都不会被选中。
JQUERY
/* 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>
答案 0 :(得分:3)
尝试替换它:
$(this).attr("selected", "selected");
由此:
$(this).prop("selected", true);
答案 1 :(得分:-1)
我认为问题是this在jquery中不会修复。我认为你必须避免使用attr函数。