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 相关文章推荐
Jquery下的26个实用小技巧(jQuery tips, tricks &amp; solutions)
Mar 01 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
Feb 25 Javascript
基于JavaScript 声明全局变量的三种方式详解
May 07 Javascript
一个获取第n个元素节点的js函数
Sep 02 Javascript
在HTML代码中使用JavaScript代码的例子
Oct 16 Javascript
JavaScript深度复制(deep clone)的实现方法
Feb 19 Javascript
AngularJS 单元测试(二)详解
Sep 21 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
AngularJS中scope的绑定策略实例分析
Oct 30 Javascript
详解JS数值Number类型
Feb 07 Javascript
浅谈js闭包理解
Mar 28 Javascript
js实现带积分弹球小游戏
Jul 21 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
Django实现表单验证
2018/09/08 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
python列表的逆序遍历实现
2020/04/20 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python