`

选择城市组件(多选)

 
阅读更多

效果:


 

 

1、在页面引入css和js文件:

<link href="${staticPath}/resources/js/flcheckbox/css/powerFloat.css" rel="stylesheet" type="text/css" />
<link href="${staticPath}/resources/js/flcheckbox/css/fl-checkbox.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" language="javascript" src="${staticPath}/resources/js/flcheckbox/jquery-powerFloat-min.js"></script>
<script type="text/javascript" language="javascript" src="${staticPath}/resources/js/flcheckbox/jquery-fl-checkbox.js"></script>

2、指定输入框:

$(function(){
	var city = $("#city").FlCheckBox({
		width:$("#city").width(),
		height:300,
		eventType:"click", //事件类型 支持focus click hover
		targetId:"fl-ckb-city",//弹出层
		position:"1-4",
		value:""
	});
		
	$("#choose_city").click(function(){
		city.click();
	});
});

 3、输入框:

 

    <input type="text" id="city" value="" readonly="readonly" style="width:390px;text-overflow:ellipsis;"/>
	<input type="button" id="choose_city" value="选择" />
	<div id="fl-ckb-city" class="fl-ckb" style="display: none;">
		<!--数据选项区-->
		<div class="fl-ckb-items">
			<c:set var="ch" value="" />
			<table width="100%">
				<c:forEach items="${cityListCh}" var="o" varStatus="n">
					<c:if test="${o.ch ne ch}">
						<c:if test="${ch ne ''}">
							</ul></td></tr>
						</c:if>
						<tr>
						<td valign="top">
							<font style="padding-left:15px;font-size: 22px;font-weight: bold;">${o.ch}</font>
						</td><td><ul>
					</c:if>
					<li>
						<input type="checkbox" value="${o.fconfigid }" name="fconfigid" />
						<label title="${o.cityname}">${fn:replace(o.cityname,'市','')}</label>
					</li>
					<c:set var="ch" value="${o.ch}" />
				</c:forEach>
				</ul></td></tr>
			</table>
		</div>
	</div>

 4、数据源“cityListCh”:

//[{fconfigid=69288840, ch=a, cityname=安庆市}, {fconfigid=226719382, ch=a, cityname=安顺市}, {fconfigid=166004284, ch=a, cityname=鞍山市}]
List<Map<String, Object>> cityListCh = findcityList();
//对城市列表按名称的首字拼音进行排序
model.addAttribute("cityListCh", PinyinHelperUtils.cityListCh(cityListCh));

 

    ***对城市列表按名称的首字拼音进行排序:

import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

import org.apache.commons.lang.StringUtils;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

public class PinyinHelperUtils {
  
  private static Map<String,String> firstLetterMap = Maps.newHashMap();
  
  static {
    firstLetterMap.put("重庆", "C");
    firstLetterMap.put("长沙", "C");
    firstLetterMap.put("长春", "C");
    firstLetterMap.put("厦门", "X");
  }
  
  /**
   * @Title: firstLetterInChinese
   * @Description: 获取字符串第一个中文汉字,拼音首字母
   * @param chinese 汉字
   * @return
   */
  public static String firstLetterInChinese(String chinese) {
    if (chinese == null || StringUtils.isEmpty(chinese)) return chinese;
    for(Map.Entry<String, String> letter : firstLetterMap.entrySet()) {
      if(chinese.startsWith(letter.getKey())){
        return letter.getValue();
      }
    }
    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
    defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    char chzr = chinese.trim().toCharArray()[0];
    if (chzr > 128) {
      try {
        String[] temp = PinyinHelper.toHanyuPinyinStringArray(chzr, defaultFormat);
        if (temp != null) {
          return "" + temp[0].charAt(0);
        }
      } catch (BadHanyuPinyinOutputFormatCombination e) {
        e.printStackTrace();
      }
    }
    return "" + chzr;
  }
  
  public static List<Map<String, Object>> cityListCh(List<Map<String, Object>> citys) {
    if (null == citys) return null;
    List<Map<String, Object>> rFconfigLists = Lists.newArrayList();
    Map<String, Object> map = null;
    for (Map<String, Object> city : citys) {
      map = Maps.newHashMap();
      map.put("fconfigid", city.get("FCONFIGID"));
      map.put("cityname",  city.get("CITYNAME"));
      map.put("ch", firstLetterInChinese(""+((null!=city.get("CSJX"))?city.get("CSJX"):city.get("CITYNAME"))));
      rFconfigLists.add(map);
    }
    Collections.sort(rFconfigLists, new Comparator<Map<String, Object>>() {
      public int compare(Map<String, Object> o1, Map<String, Object> o2) {
        return o1.get("ch").toString().compareTo(o2.get("ch").toString());
      }
    });
    return rFconfigLists;
  }
}

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 25.3 KB
分享到:
评论

相关推荐

    jQuery城市选择单选多选代码.zip

    【jQuery城市选择单选多选代码】是一款基于JavaScript库jQuery实现的城市下拉框菜单选择功能。这个代码适用于网页上的地理位置选择,例如用户填写地址时,能够方便地从省、市、区三级联动菜单中选取,提供了单选和...

    js实现的多选城市

    在这个场景中,"js实现的多选城市"是指使用JavaScript技术来创建一个功能,允许用户在选择多个城市时实现级联效果。级联城市通常指的是当用户在一个下拉框中选择一个特定的城市后,另一个下拉框会自动更新,显示与所...

    HTML5+CSS3 城市选择器

    在这个"HTML5+CSS3 城市选择器"项目中,开发者巧妙地利用了这两门技术的优势,构建了一个灵活的城市选择器组件,能够实现多选和单选功能,并允许用户最多选择三个城市。 首先,HTML5在其中扮演的角色主要是提供页面...

    vue+iview/elementUi实现城市多选

    城市多选组件 最近收到了一个需求,管理系统需要上线一个活动,但是活动是根据地区上线的,最小范围到市,于是有了下面这个组件 页面展示如图: 上代码~~~ &lt;p class=tm-mil-city-title&gt;{{name}} ...

    基于layui的全国省市区区域选择器组件

    《基于layui的全国省市区区域选择器组件详解》 在前端开发中,处理地理区域的选择是一个常见的需求,例如用户在注册时填写地址信息。layui是一款轻量级的前端UI框架,以其简洁、高效的特性深受开发者喜爱。而"基于...

    js+css3支持多选下拉城市菜单选择代码

    在这个场景中,JavaScript用于监听用户的选择行为,例如点击、滑动等,当用户触发这些事件时,JavaScript会更新下拉菜单的状态,显示或隐藏城市选项,同时记录用户的多选选择。此外,JavaScript还可以实现动态加载更...

    js+css3下拉城市选择多选代码

    在JavaScript和CSS3技术的支持下,我们可以创建一个交互性极强、视觉效果美观的下拉城市选择组件。这个组件主要用于用户在网页上进行多选城市操作,尤其适用于那些需要用户指定多个偏好或服务覆盖区域的场景。下面...

    jQuery实现城市选择下拉框单选多选特效源码.zip

    综上所述,这个源码资源展示了如何利用jQuery的灵活性和强大功能来构建一个交互性强且用户体验良好的城市选择组件。对于想要学习和提升前端开发技能,特别是jQuery应用的开发者来说,这是一个很好的实践案例。通过...

    vuecity城市选择器

    VueCity是一款基于Vue.js开发的城市选择器组件,它旨在为前端开发者提供一个便捷、高效的城市数据选择工具。在JavaScript开发中,Vue.js是一个非常流行的渐进式框架,它以其轻量级、易学习和可扩展性深受开发者喜爱...

    jQuery下拉城市单选多选插件.zip

    总的来说,“jQuery下拉城市单选多选插件”为Web开发者提供了一种简洁、高效的解决方案,用于创建交互性强的下拉城市选择组件。通过学习和掌握这个插件,不仅可以提升开发效率,也能为用户提供更优的交互体验。同时...

    js+css3下拉城市选择多选特效代码

    "js+css3下拉城市选择多选特效代码"是一个利用这两种技术实现的交互式城市选择组件,特别适合用于网站上的地址输入或者用户信息填写场景。 JavaScript是一种轻量级的解释型编程语言,常用于网页动态效果的实现,...

    jquery省市二级联动多选

    5. **事件监听**:使用jQuery的`change()`函数监听元素的变化,当用户选择一个省后,触发获取该省城市的Ajax请求,并更新市的下拉列表。 6. **多选功能**:为了支持多选,可以使用HTML5的`&lt;select multiple&gt;`属性,...

    jqery实现下拉多选

    本文将深入探讨如何使用jQuery实现一个功能丰富的下拉多选组件,包括左右选择和移除功能。 首先,`jQuery multiselect` 是一种常见的实现下拉多选的解决方案。它允许用户在下拉框中选择多个选项,同时提供了自定义...

    分组城市选择器

    "分组城市选择器"是一个专门用于用户在应用中便捷选择城市的组件。它采用了首字母分组的方式,使得用户能够快速找到所需的城市。这个选择器不仅具有完整的中国城市数据,而且支持按照首字母顺序排列,大大提高了用户...

    移动前端H5城市选择控件

    移动前端H5城市选择控件是为了解决在移动端网页应用中用户选择地理位置问题而设计的一种组件。在H5(HTML5)开发中,这样的控件通常用于收集用户的所在城市或者配送地址等信息,以便提供更精准的服务。下面将详细...

    jQuery下拉单选多选城市选择代码.zip

    在这个“jQuery下拉单选多选城市选择代码.zip”压缩包中,我们拥有一个针对城市选择功能的jQuery插件,它能够帮助开发者实现下拉框的美化和多级城市选择功能,这对于创建用户友好的网页表单至关重要。 首先,我们...

    jquery城市组件

    jQuery城市组件就是为了解决这个问题而设计的,它提供了一种方便、灵活的方式来实现城市选择功能。 **1. 组件介绍** jQuery城市组件是一款基于jQuery库的插件,它允许用户轻松地添加一级、二级甚至三级的城市选择...

Global site tag (gtag.js) - Google Analytics