jQuery根据文本框输入实时模糊查询全词匹配 ,ajax异步查询

 
/*
***人员检索start (ajax实时后台获取最新数据)
*/

 

 
 

 

 
//按姓名检索
/* function submitForm_serch()
{
var devicdids = $("#deviceid").val();
var search_roles=$("#Police_number").val();
var search_names=$("#serch_name").val();
getPersonList(devicdids,search_roles,search_names);
 
} */
//按角色检索
/* $("#Police_number").live("change",function(){
var devicdidss = $("#deviceid").val();
var search_roless=$("#Police_number").val();
var search_names=$("#serch_name").val('');
getPersonList(devicdidss,search_roless);
 
}); */
//////////////////////后台数据获取方法//////////////////////////////////////////////////////////////
function getPersonList(deviceid,search_role='0_',search_name=''){
var search_role=search_role;
var search_name=search_name;
    var $role_name = $("#person_ingroup");
    $.ajax({
        url:'backdo.php',
        type:'get',
        data:{which:"API_READPERSON",sid:"<?php echo $_SESSION['token'];?>",devid:deviceid},
        cache:false,
        dataType:'json',
        beforeSend:function(){
            $("#person_ingroup").html("");
            $(person_ingroup).append("正在匹配,请耐心等待...");
        },
        success:function(res){
            if(res.code == 0){
                $("#person_ingroup").html("");
            $("#getuserinfo").css("display","none");
                $("#getuserinfo").html("");
                $role_name.html("");
                $use_general = '<tr><td><input type="radio" value="-1"  name="policeid" onfocus="SelectPolice(\'公用\',\'公用\')" >公用</td><td>公用</td><td>公用</td></tr>';
                role = res.result.persons;
                $role_name.append($use_general);
                for(var $index=0;$index<role.length;$index++){
var name_role='';
if(role[$index].roleid.replace("_","") == 5){
name_role='五年级';
 
}else if(role[$index].roleid.replace("_","") == 4){
name_role='四年级';
 
}else if(role[$index].roleid.replace("_","") == 2){
name_role='二年级';
}else if(role[$index].roleid.replace("_","") == 3){
name_role='三年级';
}
if(search_role !== '0_' && search_name == ''){
 
if(role[$index].roleid.replace("_","") == search_role){
var $tr = '<tr><td><input type="radio" value="'+role[$index].personid+'"  name="policeid" onfocus="SelectPolice(\''+role[$index].personid+'\',\''+role[$index].name+'\')" >'+role[$index].personid+'</td><td>'+role[$index].name+'</td><td>'+name_role+'</td></tr>';
$role_name.append($tr);
}
 
}else if(search_name !== ''){
if(role[$index].name == search_name){
var $tr = '<tr><td><input type="radio" value="'+role[$index].personid+'"  name="policeid" onfocus="SelectPolice(\''+role[$index].personid+'\',\''+role[$index].name+'\')" >'+role[$index].personid+'</td><td>'+role[$index].name+'</td><td>'+name_role+'</td></tr>';
$role_name.append($tr);
}
}else if(search_role == '0_' && search_name == ''){
 
var $tr = '<tr><td><input type="radio" value="'+role[$index].personid+'"  name="policeid" onfocus="SelectPolice(\''+role[$index].personid+'\',\''+role[$index].name+'\')" >'+role[$index].personid+'</td><td>'+role[$index].name+'</td><td>'+name_role+'</td></tr>';
$role_name.append($tr);
}
                }
                set_devicedid = deviceid;
            }else{
                $role_name.html("");
                $("#getuserinfo").css("display","block");
                $("#getuserinfo").html(res.errorinfo);
                return false;
            }
        }
    });
}
 
/*
***人员检索start  通过点击按钮开始筛选(前端数据过滤型)
*/
//第一种没有按钮
//实时筛选,不用点击按钮 
// var text = ""; 
// setInterval(function(){ 
//     text = $('#serch_name').val();//获取文本框输入 
//     if($.trim(text) != ""){ 
//             $("#person_ingroup tr:not('#theader')").hide().filter(":contains('"+text+"')").show(); 
//     }else{ 
//         $('#person_ingroup tr').show();//当删除文本框的内容时,又重新显示表格所有内容 
//     } 
// },100);
$(function(){
$('#search').click(function(){
var text = $('#serch_name').val();//获取文本框输入
if($.trim(text) != ""){
$("#person_ingroup tr:not('#theader')").hide().filter(":contains('"+text+"')").show();
}else{
 
$('#person_ingroup tr').show();
}
})
});
//有按钮
$("#Police_number").live("change",function(){
var search_roless=$("#Police_number").find("option:selected").text();
if($.trim(search_roless) != ""){
if($.trim(search_roless) == "全部"){
$('#person_ingroup tr').show();;
}else{
//tr:not('#theader') 把tr标签中不存在id="theader"的tr全部隐藏,filter遍历隐藏的tr 将tr内容中包含搜索内容的tr展示
//模糊匹配查询(按分类)
//$("#person_ingroup tr:not('#theader')").hide().filter(":contains('"+search_roless+"')").show();
//全词匹配查询(按分类)filter遍历隐藏的tr 将tr下面最后一个td内容等于搜索内容的tr展示
$("#person_ingroup tr:not('#theader')").hide().filter(function(index){
return $('td:last', this).text() == search_roless;
//alert($('td:last', this).text());
}).show();
 
}
}
 
});
 
/*
***人员检索end
*/
效果图:
 

 

posted @ 2018-11-14 17:49  decoman  阅读(2481)  评论(0编辑  收藏  举报