2013-07-22 66 views
0

我有一个要求,我必须在列表中的搜索框中搜索项目onkeyup,选择几个并将它们移动到另一个列表。我写了下面的脚本,这在firefox中按预期工作,而不是在IE9和chrome中工作。我是jQuery的新手,无法找到解决方法。有人能帮忙吗?提前致谢。jQuery列表过滤器

//HTML// 
<input type="text" id="searchAvailableLabsTxt" class="searchAvailableLabsTxt 
searchbox" onkeyup="filter(this)"/> 
<select multiple="true" runat="server" id="AvailableGroupLab" class=" 
AvailableGroupLab availGrpLabs avalLabs"></select> 
//HTML 

//JQUERY// 
function filter(element) { 
var value = $(element).val().toLowerCase(); 

$(".AvailableGroupLab > option").each(function() { 
    if ($(this).text().toLowerCase().search(value) > -1) { 
     $(this).show(); 
    } 
    else { 
     $(this).hide(); 
    } 
}); 
} 
//JQUERY// 
+0

隐藏/显示如预期在IE –

回答

0

代码的问题是hide()函数,它不适用于chrome和IE。您可以存储的选项备份和使用的选项remove()

Live Demo

var options = $(".AvailableGroupLab").clone().html(); 
function filter(element) { 
    $('.AvailableGroupLab').html(options); 
    var value = $(element).val().toLowerCase(); 
    $(".AvailableGroupLab option").each(function() { 
     if ($(this).text().toLowerCase().search(value) == -1) { 
      $(this).remove(); 
     } 
    }); 
} 
+0

试了一下都不行删除选项。 Dint工作。 – Jai

+0

有没有其他方式,我可以在IE,Firefox和Chrome上工作? – Jai

+0

用现场演示检查我的更新答案,并告诉我它是怎么回事? – Adil