在用户系统中经常会须要用户绑定手机号、填写联系地址,而一旦表单一多,就会让用户感受异常繁琐,注册的门坎也就上升。这时候一个贴心的细节优化就会很好地改善用户体验,让用户眼前一亮。那么有没有一种方式能够经过手机号直接判断出用户的联系地址呢?至少在必定程度上能够减小用户的输入步骤!javascript
首先能够借助市面上的手机号查询接口获取一些地理信息,好比:java
IP138查询网手机号查询:http://user.ip138.com/mobile/doc/jquery
利用简单的api调用就能够获取到地区信息数据库
http://api.ip138.com/mobile/?mobile=13209760000&datatype=jsonp&callback=find&token=cc87f3c77747bccbaaee35006da1ebb65e0bad57
返回的数据接口json
{ "ret": "ok", // ret 值为 ok 时 返回 data 数据 为err时返回msg数据 "mobile": "13209760000", // 手机号 "data": [ "青海", // 省会或直辖市 "海西", // 地区或城市 "联通130卡",// 卡类型 "0977", // 城市区号 "632800", // 行政区划代码 ] }
能够看出,接口中包含了许多信息,而咱们要用的就是里面的“行政区划代码”。缘由在于,首先地理的文本信息不利于数据库存储,且不包含级联关系;其次,市面上的城市三级联动插件就是按“行政区划代码”关联的。api
在这里须要普及下什么是“行政区划代码”jsonp
使用《中华人民共和国行政区划代码》国家标准(GB/T2260). 这部分可分为三个层次,从左到右的含义分别是:优化
好比厦门市思明区的区划代码为:350203,能够经过简单的运算得出其省级代码为:350000(福建),市级代码为:350200(厦门)。spa
有了统一的规范,就能够利用代码区初始化城市三级联动插件了!下面介绍一个很好用的jQuery插件插件
城市三级联动插件演示:http://jquerywidget.com/jquery-citys/
一样简单
HTML结构:
<div id="demo"> <select name="province"></select> <select name="city"></select> <select name="area"></select> </div>
接口调用:
$('#demo').citys({nodata:'hidden',code:350206});
同时也能够经过名称初始化
$('#demo').citys({province:'福建',city:'厦门',area:'思明'});