如何仅检查列表中的过滤项目
我有一个搜索筛选器复选框列表使用JQuery和Java脚本....我也有Checkall和UncheckAll单选按钮..如果我启用CheckAll按钮...它将检查列表中的所有复选框...如果我过滤该列表使用搜索过滤器,也会检查该列表中的所有复选框......
现在我想检查列表中应只检查过滤项目,如果我点击checkall ....如果我不过滤意味着它将检查列表中的所有项目...
我的编码在...
CheckAll编码:
<script>
function checkall(formname,checkname,thestate)
{
var el_collection=eval("document.forms."+formname+"."+checkname);
for (c=0;c<el_collection.length;c++)
el_collection[c].checked=thestate
}
</script>
搜索过滤器编码:
<script>
(function ($) {
jQuery.expr[':'].Contains = function(a,i,m){
return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0;
};
function listFilter(header, list) {
var form = $("<form>").attr({"class":"filterform","action":"#"}),
input = $("<input>").attr({"class":"filterinput","type":"text"});
$(form).append(input).appendTo(header);
$(input)
.change( function () {
var filter = $(this).val();
if(filter) {
$(list).find("a:not(:Contains(" + filter + "))").parent().slideUp();
$(list).find("a:Contains(" + filter + ")").parent().slideDown();
} else {
$(list).find("li").slideDown();
}
return false;
})
.keyup( function () {
$(this).change();
});
}
$(function () {
listFilter($("#header"), $("#list"));
listFilter($("#header1"), $("#list1"));
});
}(jQuery));
</script>
<script type="text/javascript">
function show()
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","location.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var x=xmlDoc.getElementsByTagName("value");
for (i=0;i<x.length;i++)
{
var name=x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
var link = document.createElement( "a" );
var list = document.createElement( "li" );
var cb = document.createElement( "input" );
cb.type = "checkbox";
cb.id = "c1";
cb.value = name;
cb.name="v1";
cb.checked = false;
link.appendChild(cb);
link.innerHTML+=name;
var lists=document.getElementById('list');
list.appendChild(link);
lists.appendChild(list);
}
}
</script>
我的身体标记编码:
<form id="tracklocation">
<ul id="list" style="list-style:none">
</ul>
<h1 id="header1">DVD Collection</h1>
<input type="radio" value="ca" name="dt" onclick="checkall('tracklocation','v1',true)">Check All <input type="radio" value="ua" name="dt" onclick="checkall('tracklocation','v1',false)">Uncheck All
</form>
如何检查列表中只筛选的项目..请帮助我....
这不能回答你的问题,但它的格式更好,而不是评论。
请不要使用eval,其中方括号表示法是更好的选择。 你有什么:
> var el_collection=eval("document.forms."+formname+"."+checkname);
假设checkname是单选按钮集的名称,那么它应该是:
var el_collection = document.forms[formname][checkname];
还要注意,如果只有一个这样的输入, el_collection
将是对该元素的引用而不是HTMLCollection,所以你应该检查它。
使用Jquery更改checkall函数,它会正常工作....
function checkall(formname,checkname,thestate)
{
if ($('li').is(':hidden')) {
var visible = $('input[type=checkbox]:visible').each(function() {
this.checked = thestate; }
);
}
else
{
var visible = $('input[type=checkbox]').each(function() {
this.checked = thestate; }
);
}
}
链接地址: http://www.djcxy.com/p/71031.html
上一篇: How to checkall only filtered items in the list
下一篇: unchecking checkbox