jquery调取json数据实现省市级联的方法


Posted in Javascript onJanuary 29, 2015

本文实例讲述了jquery调取json数据实现省市级联的方法。分享给大家供大家参考。具体如下:

使用jQuery mobile作为创建移动web的框架,需要实现省市级联的功能,具体代码如下(还需要优化的地方):

Html代码:

jQuery mobile中,有input  list属性,下方紧跟<datalist >标签,中间包含的<option value="XXXX"></option>即为选项,相当于这个input为有下拉列表的功能,当然,input的list名称需要和datalist中的id一致。

<input id="province" list="prvlist" placeholder="省/自治区/直辖市" onblur="changeProvince();"> 
  <datalist id="prvlist"> 
 
  </datalist> 
  <input style="" id="city" list="citylist" placeholder="市" onblur="changeCity();"> 
  <datalist id="citylist"> 
 
  </datalist> 
  <input style="" id="area" list="arealist" placeholder="区"> 
  <datalist id="arealist"> 
 
</datalist>

js代码:

js代码,主要功能

1、提取json数据,绑定到省级下拉列表内

2、省级input选择好后,市级列表自动绑定

3、区级下拉列表同市级一样

<script> 
    $(function () { 
      getProvince();  //页面打开后,省级下拉列表自动绑定 
    }) 
    //获取省份 
    function getProvince() { 
      var Aid; 
      var Afather; 
      $.get('area_json0.txt', {}, function (data) { 
        for (var i = 0; i < data.length; i++) { 
          if (data[i].fatherId == 0) { 
            Afather += '<option id=" ' + data[i].id + '" value="' + data[i].name + '">'; 
          } 
        } 
        $("#prvlist").append(Afather); 
      } , 'json'); 
    } 
 
    function changeProvince(){ 
      var city; 
      var prv_val=$("#province").val(); 
      getJson(prv_val); 
    } 
    function changeCity(){ 
      var city_val=$("#city").val(); 
      getJsonArea(city_val); 
    } 
    function getJson(Name){ 
      var cityID; 
      $.get('area_json0.txt', {}, function (data) { 
        for (var i = 0; i < data.length; i++) { 
          if (data[i].name == Name) { 
            cityID=data[i].id; 
          } 
        } 
        setCity(cityID); 
      } , 'json'); 
    } 
    function setCity(val){ 
      var Acity; 
      var $listcity=$("#citylist"); 
      $.get('area_json0.txt', {}, function (data) { 
        for (var n = 0; n < data.length; n++) { 
          if (data[n].fatherId == val) { 
            alert(data[n].id); 
            Acity += '<option id=" ' + data[n].id + '" value="' + data[n].name + '">'; 
          } 
        } 
        $listcity.append(Acity); 
      } , 'json'); 
   } 
    function getJsonArea(Name){ 
      var areaID; 
      $.get('area_json0.txt', {}, function (data) { 
        for (var i = 0; i < data.length; i++) { 
          if (data[i].name == Name) { 
            areaID=data[i].id; 
          } 
        } 
        setArea(areaID); 
      } , 'json'); 
    } 
    function setArea(Aval){ 
      var Aarea; 
      var $listarea=$("#arealist"); 
      $.get('area_json0.txt', {}, function (data) { 
        for (var m = 0; m < data.length; m++) { 
          if (data[m].fatherId == Aval) { 
            alert(data[n].id); 
            Aarea += '<option id=" ' + data[m].id + '" value="' + data[m].name + '">'; 
          } 
        } 
        $listarea.append(Aarea); 
      } , 'json'); 
    } 
</script>

代码应该还可以进一步优化,暂时将代码保存。

Javascript 相关文章推荐
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
javascript的日期对象、数组对象、二维数组使用说明
Dec 22 Javascript
微信企业号开发之微信考勤Cookies的使用
Sep 11 Javascript
JavaScript 模块的循环加载实现方法
Dec 13 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
基于vue实现多引擎搜索及关键字提示
Mar 16 Javascript
jQuery滑动到底部加载下一页数据的实例代码
May 22 jQuery
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
Jun 05 Javascript
vue + el-form 实现的多层循环表单验证
Nov 25 Vue.js
javascript实现京东快递单号的查询效果
Nov 30 Javascript
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
JavaScript中实现单体模式分享
Jan 29 #Javascript
angular简介和其特点介绍
Jan 29 #Javascript
javascript实现获取浏览器版本、操作系统类型
Jan 29 #Javascript
浅谈javascript中自定义模版
Jan 29 #Javascript
jQuery和AngularJS的区别浅析
Jan 29 #Javascript
node.js中的forEach()是同步还是异步呢
Jan 29 #Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 #Javascript
You might like
PHP 中执行系统外部命令
2006/10/09 PHP
将php数组输出html表格的方法
2014/02/24 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
[原创]图片分页查看
2006/08/28 Javascript
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
[00:10]神之谴戒
2019/03/06 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
对TensorFlow的assign赋值用法详解
2018/07/30 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
七一建党节演讲稿
2014/09/11 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
工作证明英文模板
2014/10/21 职场文书
歼十出击观后感
2015/06/11 职场文书
八年级语文教学反思
2016/03/03 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
python爬取豆瓣电影TOP250数据
2021/05/23 Python
Django路由层如何获取正确的url
2021/07/15 Python