1
,这是我的javascript,允许过滤搜索字段...变化格属性
function escape4regex(text)
{
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
}
function searchRegExFieldKeyUp()
{
var table = document.getElementById('ModelFilter');
var cells = table.getElementsByTagName('div');
var searchterms = escape4regex(this.value);
var regVar = '(?=.*' + searchterms.replace(/\s/g, '.*)(?=.*') + '.*)';
var i=cells.length;
while (i--)
{
var cell = cells[i];
var rowStr = cell.innerHTML;
// remove all tags
rowStr = rowStr.replace(/<(?:.|\n)*?>/gm, '').replace(/\n|\s{2,}/gm, ' '); // searches whole row
var regex = new RegExp(regVar,"gi");
var result = (regex.test(rowStr));
if(result)
{
cell.style.display = "";// check if compat with IE
}
else
{
cell.style.display = "none";
}
}
}
将会产生一个从DATABSE输入复选框
<div id="ModelFilter">
<?php
while ($row = mysqli_fetch_assoc($result))
{
echo"<div class=\"modelfilter_td\" id=\"modelfilter_td\">";
echo"<input type=\"checkbox\" id = \"$row[ModelID]\"
name = \"selectedModels[]\"value =\"$row[Model]\" onclick=\"chkcontrol.apply(this);\">";
echo "$row[Model]";
echo"</div>";
}
echo"</div>";
我要做到以下几点:
当复选框被选中时,它保持可见状态,即使它不在搜索项中过滤器字段。
当复选框被选中时,背景色被改变。
- 复选框和复选框的标题被保存在一个div中,我想让用户点击div中的任何位置以允许切换复选框。
任何人开始我在这条正确的轨道?
编辑:这里是解决问题“3”。
<script language="javascript">
$(document).ready(function(){
$(".modelfilter_td").click(function(e){
var chk = $($(this).find("input[type='checkbox']"));
if(chk.attr('checked'))
{
chk.attr('checked',false);
}else{
chk.attr('checked',true);
}
});
});
谢谢你会这样做;) – user1338194 2012-07-06 08:25:53
即时获得一个意外的$结束? – user1338194 2012-07-06 08:33:59
在隔离的环境中,此代码有效。你是否1:1复制了代码?如果没有,你是否注意到while()语句结尾的双冒号? 如果是:上下文是否正确?这段代码不会在PHP上下文中运行(想想<?php ?>)。 – Ron 2012-07-06 08:47:28