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 相关文章推荐
让焦点自动跳转
Jul 01 Javascript
location.href语句与火狐不兼容的问题
Jul 04 Javascript
用javascript为页面添加天气显示实现思路及代码
Dec 02 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
Apr 15 Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 Javascript
微信小程序自定义组件之可清除的input组件
Jul 17 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 Javascript
微信小程序公用参数与公用方法用法示例
Jan 09 Javascript
详解从vue-loader源码分析CSS Scoped的实现
Sep 23 Javascript
微信小程序自定义弹出层效果
May 26 Javascript
JS数据类型判断的几种常用方法
Jul 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
重置版宣传动画
2020/04/09 魔兽争霸
php获取一个变量的名字的方法
2014/09/05 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
JS实现div居中示例
2014/04/17 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
2017/09/20 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
python中文编码问题小结
2014/09/28 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
Python自定义简单图轴简单实例
2018/01/08 Python
python中abs&amp;map&amp;reduce简介
2018/02/20 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
pandas.read_csv参数详解(小结)
2019/06/21 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
python打包多类型文件的操作方法
2020/09/21 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
2014年公司植树节活动方案
2014/03/04 职场文书
导游词之井冈山
2019/11/20 职场文书
PL350与SW11的比较
2021/04/22 无线电
python3实现无权最短路径的方法
2021/05/12 Python
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
Golang的继承模拟实例
2021/06/30 Golang
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技