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 相关文章推荐
Prototype String对象 学习
Jul 19 Javascript
JQuery优缺点分析说明
Jun 09 Javascript
JS中的数组的sort方法使用示例
Jan 22 Javascript
浅谈Node.js中的定时器
Jun 18 Javascript
javascript单页面手势滑屏切换原理详解
Mar 21 Javascript
DOM 事件的深入浅出(一)
Dec 05 Javascript
详解webpack import()动态加载模块踩坑
Jul 17 Javascript
vue 根据数组中某一项的值进行排序的方法
Aug 30 Javascript
总结javascript三元运算符知识点
Sep 28 Javascript
详解Vue2.5+迁移至Typescript指南
Aug 01 Javascript
JS中的继承操作实例总结
Jun 06 Javascript
three.js 制作动态二维码的示例代码
Jul 31 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 时间转换Unix时间戳代码
2010/01/22 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
javascript date格式化示例
2013/09/25 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
node.js超时timeout详解
2014/11/26 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
python字符串过滤性能比较5种方法
2017/06/22 Python
django 多数据库配置教程
2018/05/30 Python
python调用staf自动化框架的方法
2018/12/26 Python
pandas的qcut()方法详解
2019/07/06 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
查看keras的默认backend实现方式
2020/06/19 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
幼师自我鉴定范文
2013/10/01 职场文书
矫正人员思想汇报
2014/01/08 职场文书
小区停车场管理制度
2014/01/27 职场文书
检讨书大全
2015/01/27 职场文书
谢师宴学生致辞
2015/07/27 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
详解Python函数print用法
2021/06/18 Python
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫