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中使用正则匹配多条,且获取每条中的分组数据
Nov 30 Javascript
JS获取当前日期和时间的简单实例
Nov 19 Javascript
AngularJS进行性能调优的7个建议
Dec 28 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 Javascript
JavaScript随机生成颜色的方法
Oct 15 Javascript
Node.JS利用PhantomJs抓取网页入门教程
May 19 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 Javascript
总结js函数相关知识点
Feb 27 Javascript
JQuery通过后台获取数据遍历到前台的方法
Aug 13 jQuery
详解key在Vue列表渲染时究竟起到了什么作用
Apr 20 Javascript
Javascript如何递归遍历本地文件夹
Aug 06 Javascript
详解JS ES6编码规范
May 07 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文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
php短网址和数字之间相互转换的方法
2015/03/13 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
浅析Jquery操作select
2016/12/13 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
three.js加载obj模型的实例代码
2017/11/10 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
微信跳一跳python代码实现
2018/01/05 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
python自动点赞功能的实现思路
2020/02/26 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
校园奶茶店创业计划书
2014/01/23 职场文书
商务代表岗位职责
2015/02/15 职场文书
学生检讨书怎么写
2015/05/07 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书