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 相关文章推荐
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
Jan 09 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
May 11 Javascript
纯js实现瀑布流布局及ajax动态新增数据
Apr 07 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
Jun 12 Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 Javascript
angular学习之从零搭建一个angular4.0项目
Jul 10 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
微信小程序如何获取用户手机号
Jan 26 Javascript
微信小程序上传文件到阿里OSS教程
May 20 Javascript
elementUi vue el-radio 监听选中变化的实例代码
Jun 28 Javascript
JS实现简易图片自动轮播
Oct 16 Javascript
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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
深入解析Python中的集合类型操作符
2015/08/19 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
用python制作个音乐下载器
2021/01/30 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
一个大学生十年的职业规划
2014/01/17 职场文书
大学生个人自荐信
2014/02/24 职场文书
市场部经理岗位职责
2014/04/10 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
房产公证委托书范本
2014/09/20 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
李强优秀员工观后感
2015/06/16 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
JavaScript 对象创建的3种方法
2021/11/17 Javascript
设置IIS Express并发数
2022/07/07 Servers