bootstrap实现多个下拉框同时搜索

1.第一个下拉框代码

    <div class="btn-group col-sm-3 col-xs-6 util-btn-margin-bottom-5 quick-search">

<!--快速查询-->

<div class="input-group">

<span class="input-group-addon"><i class="fa fa-search"></i></span>

<select data-filter-type="2" name="copyfrom" class="form-control select2" data-validate="notempty" data-field="name" data-placeholder="搜索数据资源">

<option value="">请选择数据资源</option>

<optgroup label="UNESCO二类中心">

<#list data.copyfromList as entity>

<#if (entity.type?? && entity.type == \'1\')>

<option value="${entity.alias!}" <#if (param.copyfrom?? && param.copyfrom == entity.alias)>selected</#if>>${entity.alias!}</option>

</#if>

</#list>

</optgroup>

<optgroup label="科技动态与进展">

<#list data.copyfromList as entity>

<#if (entity.type?? && entity.type == \'7\')>

<option value="${entity.alias!}" <#if (param.copyfrom?? && param.copyfrom == entity.alias)>selected</#if>>${entity.alias!}</option>

</#if>

</#list>

</optgroup>

<optgroup label="其他">

<#list data.copyfromList as entity>

<#if (entity.type?? && entity.type == \'8\')>

<option value="${entity.alias!}" <#if (param.copyfrom?? && param.copyfrom == entity.alias)>selected</#if>>${entity.alias!}</option>

</#if>

</#list>

</optgroup>

</select>

</div>

</div>

2.第二个下拉框代码

<div class="btn-group col-sm-3 col-xs-6 util-btn-margin-bottom-5 quick-search">

<!--快速查询-->

<div class="input-group">

<span class="input-group-addon"><i class="fa fa-search"></i></span>

<select data-filter-type="2" name="cid" class="form-control select2" data-validate="notempty" data-field="name" data-placeholder="搜索栏目名称">

<option value=""></option>

<#list data.categories as entity>

<option value="${entity.id}" <#if (param.cid?? && param.cid == entity.id)>selected</#if>>${entity.id} - ${entity.name}</option>

</#list>

</select>

</div>

</div>

3.后台js代码(url 参数整理)

  bindEvents:function(){

    var self = this, dom = self.element;

    $(\'select[name="copyfrom"]\', dom).change(function(event){

    self.params.copyfrom = $(this).val();

    var url = self.formatParams(self.params);

    window.location.href = "cekasp_article.htm" + url;

  });

    $(\'select[name="cid"]\', dom).change(function(event){

    self.params.cid = $(this).val();

    var url = self.formatParams(self.params);

    window.location.href = "cekasp_article.htm" + url;

  });

}

  formatParams:function(params){

    var self = this;

    var url = "";

    for(var param in params){

    if(params[param]){

      url += param + "=" + params[param] + "&";

    }

  }

    if(url.length > 0){

      url = "?" + url.substring(0,url.length-1);

  }

    return url;

  }

4.后台java部分代码(接收参数,然后过滤器根据参数得到想要的结果)

 String categoryId = request.optString("cid");

  if (!ValidateUtil.isNull(categoryId)) {

  // 加载栏目信息

  JSONObject jsonCategory = toJSONObject(adminService.loadById(CekaspCategory.class, categoryId));

    response.put("category", jsonCategory);

    param.addFilter("id", FilterType.IN, articleIdList, 1);

  }

  String copyfrom = request.optString("copyfrom");

  if (!ValidateUtil.isNull(copyfrom)) {

    param.addFilter("copyfrom", FilterType.EQUALS, copyfrom);

}

 List<CekaspArticle> articleList = adminService.list(CekaspArticle.class,param);