纯JS实现中国行政区域上下联动选择地址
一、实现目的:
如标题所述,通过JS来实现地址的选取,上一篇博客介绍的方式是通过java读取txt资源文件来实现地址的选择,通过ajax方式访问服务器实现省市区联动。此篇中将介绍如何使用JS实现相同功能。
相比上一篇的那种方式,这种方式在选择地址的时候不用跟服务器交互,效率更高些。
二、资源文件
要实现地址选取当然也需要存放着区域的资源文件。相关JS文件(region_select.js)的下载地址(网盘):https://yunpan.cn/cqLRBjRw45EzZ 提取码:bb2a
三、代码实现
1. 前台页面;在JSP上使用简单html标签,然后引入相关资源文件即可。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>中国行政区域联动选择</title>
</head>
<style>
.areainput1{width: auto; margin-right: 5px;}
body div{margin-top: 10px;margin-left: 5px;}
</style>
<body>
<form action="save.action" method="post">
<div id="div_province">
<select name="add_p" id="add_p" class="areainput" value="" ></select>
<select name="add_c" id="add_c" class="areainput" value="" ></select>
<select name="add_a" id="add_a" class="areainput" value=""></select>
</div>
<div><input type="submit" value="提交"/></div>
</form> <script charset="utf-8" src="js/region_select.js"></script>
<script type="text/javascript">
new PCAS('add_p','add_c','add_a' ,'天津市','天津市','河东区'); //这是初始化
//如果数据库里已经存了某个地址,PCAS方法的后面三个参数可以用JSTL标签输出即可
</script>
</body>
</html>
页面效果如下图所示:

2. 后台Action接收参数(以使用了strut2框架为例)
public class ThirdpartyConfigAction extends BaseAction{
private String add_p;
private String add_c;
private String add_a;
/*
* get/set方法此处省略...
*/
//当页面提交后,strut会自动将成员变量复制,页面上选中的省、市、区就会存到对应变量里面
public String save(){
//调用DAO方法,保存数据
}
}
三、总结
这种实现方式就特别简单,具体JS是怎么实现的可以不用管它,学会使用即可,有时间和兴趣可以自己研究,此为实际工作中使用到的,为方便以后项目中再次用到故记录下来,以便以后查阅。
other:
这里推荐一个编辑器HBuilder,写html/jsp很方便,样式JS方法都有提示,挺好用的。
纯JS实现中国行政区域上下联动选择地址的更多相关文章
- 纯js异步无刷新请求(只支持IE)
纯js异步无刷新请求 下载地址:http://pan.baidu.com/s/1slakL1F 所以因为非IE浏览器都禁止跨域请求,所以以只支持IE. <HTML> <!-- 乱码( ...
- 纯js异步无刷新请求(只支持IE)【原】
纯js异步无刷新请求 下载地址:http://pan.baidu.com/s/1slakL1F 所以因为非IE浏览器都禁止跨域请求,所以以只支持IE. <HTML> <!-- 乱码( ...
- F2工作流引擎之-纯JS Web在线可拖拽的流程设计器(八)
Web纯JS流程设计器无需编程,完全是通过鼠标拖.拉.拽的方式来完成,支持串行.并行.分支.异或分支.M取N路分支.会签.聚合.多重聚合.退回.传阅.转交,都可以非常方便快捷地实现,管理员 ...
- java解析中国行政区域并在页面显示实现动态逐级筛选
一.实现目标 首先会有一个存放中国行政区域数据的一个txt文件,用java读取并解析出来,并在页面上通过下拉框的形式展示出来.实现效果如下图,当选择完省份后,在选择该省份下的城市,然后在选择该城市下的 ...
- 纯JS Web在线可拖拽的流程设计器
F2工作流引擎之-纯JS Web在线可拖拽的流程设计器 Web纯JS流程设计器无需编程,完全是通过鼠标拖.拉.拽的方式来完成,支持串行.并行.分支.异或分支.M取N路分支.会签.聚合.多重聚合.退回. ...
- [分享黑科技]纯js突破localstorage存储上线,远程抓取图片,并转码base64保存本地,最终实现整个网站所有静态资源离线到用户手机效果却不依赖浏览器的缓存机制,单页应用最新黑科技
好久没有写博客了,想到2年前答应要放出源代码的也没放出来,最近终于有空先把纯js实现无限空间大小的本地存储的功能开源了,项目地址https://github.com/xueduany/localsto ...
- baguetteBox.js响应式画廊插件(纯JS)
baguetteBox.js baguetteBox.js 是一个简单和易于使用lightbox纯JavaScript脚本,拥有图像放大缩小并带有相应的CSS3过度,并能在触摸屏等设备上完美展示. D ...
- 纯js分页代码(简洁实用)
纯js写的分页代码. 复制代码代码如下: //每页显示字数 PageSize=5000; //分页模式 flag=2;//1:根据字数自动分页 2:根据[NextPage]分页 //默认页 start ...
- JavaScript--动态添加元素(纯js书写table并删除数据)
本文是对上一篇博文的扩展,用js书写表格,并添加和删除数据,详细代码解释见代码页. 对于文中使用的script脚本函数,下载地址如下:https://pan.baidu.com/s/13OFnj7nc ...
随机推荐
- Map小结
Map主要用于存储健值对个人理解:因为Map是根据键得到值,因此需要保证键值的唯一性,不允许键重复(重复了覆盖了),但允许值重复.1.HashMap根据键的HashCode 值存储数据,根据键可以直接 ...
- android上下文菜单
XML: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...
- Jmeter beanshell 生成手机号加密签名
首先自己写一个根据手机号生成加密字符串的函数,并且导出为Jar包,函数具体内容省略,网上有很多 将Jar包放到Jmeter lib\ext目录下面,然后在user.properties里面把路径加进去 ...
- oracle批量修改多个表的数据
方法一 写PL/SQL,开cursor declare l_varID varchar2(20); l_varSubName varchar2(30); cursor mycur is sele ...
- 解决WAMP搭建PHP环境后后局域网其他机器无法访问的问题
刚安装wamp以后本地访问localhost或者127.0.0.1可以访问,但是如果局域网内其他电脑访问则出现403错误.从网上找了很多,各种说法都有了,却没几个好用的.解决问题方法如下: 1,首先确 ...
- 关于 C# 调用 JavaWebservice服务,版本不一致的问题
1. A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint. 问题原因: 客户端和服务端的SOAP协议版本不一 ...
- PostgreSQL 在centos 7下的安装配置
安装postgresql: sudo yum install postgresql-server 初始化数据库: sudo postgresql-setup initdb 启动数据库: sudo sy ...
- 用jquery解析JSON数据的方法以及字符串转换成json的3种方法
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...
- 父进程等待子进程结束 waitpid wait
我们一直在强调一个概念就是进程是一个程序执行的实例,是内核在虚拟概念下创建的实体,它实例化的体现在用户态就是程序代码和代码使用的变量(存储空间),在内核态就是内核为我们每个进程所保存的数据结构(状态信 ...
- iOS9中的App Transport Security
问题:webView加载网页加载不出来 原因:苹果在iOS9 sdk中加入了App Transport Security限制(iOS9以前的iOS sdk默认关闭ATS),默认强制使用https,并且 ...