我有一个无序列表,其中包含以编程方式在web2py中生成的项目...
我在HTML中显示它们如下所示...我想要一个允许用户输入字符串的文本框。如果<li>
值匹配与否,此字符串应“切换”<input type="text" id="userTextSearch" onkeyup="listSearch(this.value)"></input>
<ul id="fileResultsID">
{{for item in mylist:}}
<li>
<input type="checkbox" name="FileListItem" id="value"> {{=item}}</label>
</li>
{{pass}}
</ul>
function listSearch(textValue)
{
var fileGroup = document.getElementById('fileResultsID');
var items = fileGroup.getElementsByTagName('li');
var chkBx;
for(var i = 0, n = items.length; i < n; i++)
{
chkBx = items[i].getElementsByTagName('input');
alert(chkBx.InnerHtml);
//if(!items[i].value.startswith(textValue))
//{
// items[i].toggle();
//}
}
}
值的可见性。
<li>
到目前为止,当我输入时,没有任何可见的信息......
问:如何在用户输入时让某些ImageDataGenerator
行项目消失?
如果文本框也是空的,我将需要他们全部回来
答案 0 :(得分:0)
这对我有用...如果文本框被清除,我还有一个快速循环来重新编写所有列表项。
function listSearch(textValue){
var fileGroup = document.getElementById('fileResultsID');
var items = fileGroup.getElementsByTagName('li');
var chkBx;
//check to see if user deleted everything first
if(!textValue)
{
for(var i = 0, n = items.length; i < n; i++)
{
items[i].style.display = "block";
}
}
for(var i = 0, n = items.length; i < n; i++)
{
chkBx = items[i].getElementsByTagName('input');
var str = chkBx[0].id
if(!str.toLowerCase().startsWith(textValue.toLowerCase()))
{
items[i].style.display = "none";
}
}}