abd*_*him 5 checkbox jquery filter
我有一个很长的复选框列表(同名).我想根据文本框中的输入创建一个过滤系统.我的意思是,当我在我的文本框中写"ter"时,我想只显示那些值匹配%tr%的chechbox(意味着在任何地方都有短语"ter").使用jquery实现这一目标的最佳方法是什么?我很抱歉,因为我对jquery很新.
<input type="checkbox" name="chk" id="chk1" value="casual">casual
<input type="checkbox" name="chk" id="chk2" value="intermediate">intermediate
<input type="checkbox" name="chk" id="chk3" value="hunter">hunter
<input type="checkbox" name="chk" id="chk4" value="forest">forest
<input type="checkbox" name="chk" id="chk5" value="term">extreme
<input type="checkbox" name="chk" id="chk6" value="river">river
<input type="checkbox" name="chk" id="chk7" value="beach">beach
<input type="text" id="chkfilter">
Run Code Online (Sandbox Code Playgroud)
因此,每当我在文本框中写"ter"时,复选框2,3和5应该是可见的,其他应该隐藏/消失.怎么做?为每个单独的项目使用div?另外,如何使用jquery进行搜索以匹配%ter%
ade*_*neo 10
当您在文本框中键入内容时,选中复选框以查看该字符串是否存在于indexOf的值中,并根据该值设置显示属性(我使用了块,但内联对于复选框可能是正确的):
$('#chkfilter').on('keyup', function() {
var query = this.value;
$('[id^="chk"]').each(function(i, elem) {
if (elem.value.indexOf(query) != -1) {
elem.style.display = 'block';
}else{
elem.style.display = 'none';
}
});
});
Run Code Online (Sandbox Code Playgroud)
复选框后面的文本不是复选框的一部分,不会被隐藏,要做到这一点你应该把它包装在一个标签中并做一些类似这样的JSBIN?
| 归档时间: |
|
| 查看次数: |
6789 次 |
| 最近记录: |