JQuery插件第十八个:高级搜索集成处理

 (function($) {
    $.fn.AdvSearch = function(options) {
        var defaults = {
            searchbtn: "", 		//搜索按钮, 输入Jquery选择器名称
            showSearchbtn: "", 	//显示或隐藏搜索区域的按钮, 输入Jquery选择器名称	
            cookieName: "",
            otherUrl: "" 		//跳转链接和搜索表单没关系的URL参数 例如: "&sn=1123"
        }
        var options = $.extend(defaults, options);

        var $searchTab = this; //搜索区域id或class
        var arrIds = new Array();
        $searchTab.find("input, select").each(function() {
            if ($.trim(this.id).length > 0) {
                arrIds.push(this.id);
            }
        });

        if (options.showSearchbtn != "") {
            //自动生成cookieName
            if ($.trim(options.cookieName).length == 0) {
                options.cookieName = 'c' + new Date().getTime();
            }

            //Ser 代表高级搜索区是否隐藏变量
            var Ser = cookie(options.cookieName); 
            if (Ser == '0' || Ser == null)
            { $(options.showSearchbtn).attr("alt", "显示搜索框"); $searchTab.hide(); }
            else
            { $(options.showSearchbtn).attr("alt", "隐藏搜索框"); $searchTab.show(); }

            //点击按钮显示隐藏某块区域
            $(options.showSearchbtn).click(function() {
                Ser = cookie(options.cookieName);
                if (Ser == '0' || Ser == null)
                { cookadd(options.cookieName, "1"); $(this).attr("alt", "隐藏搜索框"); $searchTab.show(); }
                else
                { cookadd(options.cookieName, "0"); $(this).attr("alt", "显示搜索框"); $searchTab.hide(); }
            }).css({ "cursor": "pointer" });
        }
        
        //点击搜索按钮,直接指向地址栏链接		
        $(options.searchbtn).click(function() {
            var href = "&";
            for (var key in arrIds) {
                var keyid = arrIds[key];
                var queryTitle = $("#" + keyid).val();
                href += "&" + keyid + "=" + encodeURIComponent(queryTitle); //资料显示服务端用Server.UrlDecode方法解码
            }
            href += options.otherUrl;
            if (href.length > 1) {
                window.document.body.innerHTML = '';
                window.location.href = href.replace('&&', '?');
            }
        }).css({ "cursor": "pointer" });


        //所有输入框里全部默认值设置
        for (var key in arrIds) {
            var keyid = arrIds[key];
            if (keyid != '' && keyid != null) {
                if ($("#" + keyid).attr('type') == 'text') {
                    var dval = $("#" + keyid).val();
                    //搜索条件从地址栏获取值
                    var parameter = decodeURIComponent(jQuery.urlParam.get(keyid));
                    if (typeof parameter != undefined && parameter != '' && parameter != dval && parameter != 'null' && parameter != 'undefined') {
                        $("#" + keyid).val(parameter);
                    }
                    else if (dval != null && dval != '') {
                        //应用jQuery.setTip插件
                        $("#" + keyid).setTip({ defaultValue: dval });
                    }
                } else {
                    //搜索条件从地址栏获取值
                    var parameter = decodeURIComponent(jQuery.urlParam.get(keyid)); //服务端用Server.UrlEncode方法编码
                    if (typeof parameter != undefined && parameter != '' && parameter != 'undefined') {
                        $("#" + keyid).val(parameter);
                    }
                }
            }
        }
    };
})(jQuery);                               
调用事例:
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/index.css" />
<script src='../js/jquery-1.4.2.js'  ></script>
<script src='../js/jquery.setTip.js'  ></script>
<script src='../js/jQuery.urlParam.js' ></script>
<script src='../js/jQuery.cookie.js'  ></script>
<script src='../js/jQuery.AdvSearch.js'  ></script>
<script >
$(function(){
		$("#ser").AdvSearch({
    			searchbtn:"img[src$='sosuo.jpg']",
			showSearchbtn:"img[src$='search.jpg']",
			cookieName:"sfsdf6"					
		   });

	})
</script>
</head>
<body>
<div id="wrap">
  <div id="container">
    <div class="main">
      <div id="content">
        <table width="100%" summary="操作" class="a10">
          <tr>
            <td colspan="2" style="text-align:right;"><a href="pandiandanxinzeng.html"><img src="../images/scpdd.jpg" alt="生成盘点单"  /></a>  <img src="../images/search.jpg" alt="查询" /></td>
            <td  style="text-align:right;"> </td>
            <td><span style="text-align:right;"></span></td>
            <td > </td>
            <td > </td>
			 <td > </td>
            <td > </td>
            <td > </td>
          </tr>
	      <tr id='ser'>
            <td width="9%" style="text-align:right;">采集单号:</td>
            <td width="6%" style="text-align:right;"><input name="Input3" id='cako' type="text" class="sousuo1" value="请输入采集单号"/></td>
            <td style="text-align:right;" width="6%">采集人:</td>
            <td width="10%"><select name="select2" id=per class="dropdownlist">
              <option>请选择采集人</option>
              <option>张三</option>
              <option>李四</option>
            </select></td>
            <td width="11%"><input name="Input2" id=sdate type="text" class="sousuo2" value="采集开始时间"/>
              —</td>
            <td width="9%"><input name="Input4" id=edate type="text" class="sousuo2" value="采集结束时间"/></td>
            <td width="5%">备注:</td>
            <td width="10%"><input name="Input" id=keyword type="text" class="sousuo" value="请录入关键字"/></td>
            <td ><img src="../images/sosuo.jpg" alt="搜索" /></td>
          </tr>
        </table>
</body>
</html>

2014版搜索插件在点搜索按钮时可以把默认值自动去掉,并且剔除输入值左右两边空格

下载2014Demo

2015年02月28日版本当页面是嵌套母板页时,textbox的客户端ID是被系统加过前缀的,此时可以通过$.fn.AdvSearch.encode 替换成简洁的地址参数名称。

2015年03月03日版本插件特征如前所述,本次升级新增样式类advsearch,可以使页面多处搜索各自独立 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值