首页 > 开源系统应用 > Thinkphp > OneThink后台管理列表的搜索代码优化
网站建设、切图、企业建站、微信开发 联系QQ:404658186 tel:18716186715
2015
07-06

OneThink后台管理列表的搜索代码优化

在使用OneThink的时候,它后台的原生搜索js代码在IE中会出现内存溢出的问题,也就是说在IE中无法使用搜索功能。

问题的关键出现在这两句代码上,它是用于筛选不为空的项。

query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');

如果要让它在IE上支持,必须要改造一下代码。

原代码

//搜索功能
 $("#search").click(function(){
 var url = $(this).attr('url');
 var query = $('.search-form').find('input').serialize();
 query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
 query = query.replace(/^&/g,'');
 if( url.indexOf('?')>0 ){
 url += '&' + query;
 }else{
 url += '?' + query;
 }
 window.location.href = url;
 });

改造后的代码

//搜索功能
    $("#search").click(function(){
        var url = $(this).attr('url');
        
        var status = $("#sch-sort-txt").attr("data");
        var query_obj=  $(".search-form input").filter(function(index) {
              return $(this).val() != '';
            });//筛选为空的项        
         
        var query  = query_obj.serialize();
        
        if(status != ''){            
            query = 'status=' + status + "&" + query;  
        }
        if( url.indexOf('?')>0 ){
            url += '&' + query;
        }else{
            url += '?' + query;
        }
        
        window.location.href = url;
    });
最后编辑:
作者:码农一号
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。

*