我有两个可见的隐藏下拉列表和过滤器文本框完美地工作除了检查标志,如果选项已经在选定的列表部分中,想法是从隐藏过滤并在可见下拉列表中查看,然后从可见中选择并进入选定列表。这部分工作,直到我添加第二个for循环和标志,控制选项已经在选定列表中然后跳过过滤器,并不显示在无效的可见列表中。
如果我在“FROM”到“HERE”之间删除评论作品,还会在可见列表中显示所选内容。
问题:冻结的浏览器和可见列表中包含无限的选项。
function SearchList() {
var listHidden = document.getElementById('<%= ddlStudentHidden.ClientID %>');
var listVisible = document.getElementById('<%= ddlStudents.ClientID %>');
var listSelected = document.getElementById('<%= ddlSelecteds.ClientID %>');
var txtFind = document.getElementById('<%= txtFind.ClientID %>');
$("#<%= ddlStudents.ClientID %>").find('option').remove();
for (var i = 0; i < listHidden.options.length; i++) {
if (listHidden.options[i].text.toLowerCase().match(txtFind.value.toLowerCase())) {
/*FROM*/
var flag = false;
for (var i = 0; i < listSelected.options.length; i++) {
if (!listSelected.options[i].text.toLowerCase().match(txtFind.value.toLowerCase())) {
flag = true;
}
}
if (!flag) /*HERE*/
$("#<%= ddlStudents.ClientID %>").append($('<option></option>').val(listHidden.options[i].value).html(listHidden.options[i].text));
}
}
}
答案 0 :(得分:2)
哟在内循环中再次声明变量i,它将覆盖外循环中的i。将内部循环中的变量重命名为除i之外的其他内容。