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 22 Javascript
基于jQuery的message插件实现右下角弹出消息框
Jan 11 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
jquery 使用简明教程
Mar 05 Javascript
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
使用js实现数据格式化
Dec 03 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
Aug 18 Javascript
深入理解JS正则表达式---分组
Jul 18 Javascript
深入理解jQuery()方法的构建原理
Dec 05 Javascript
BootStrap表单时间选择器详解
May 09 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
Jun 04 Javascript
vue - vue.config.js中devServer配置方式
Oct 30 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
PHP使用feof()函数读文件的方法
2014/11/07 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
javascript生成大小写字母
2015/07/03 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
[01:13]这,就是刀塔
2014/07/16 DOTA
python基础教程之元组操作使用详解
2014/03/25 Python
Python set集合类型操作总结
2014/11/07 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
领导证婚人证婚词
2014/01/13 职场文书
实习生自我评价
2014/01/18 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
中标通知书
2015/04/17 职场文书
项目战略合作意向书
2015/05/08 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
童年读书笔记
2015/06/26 职场文书
总结会主持词
2015/07/02 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android
Java获取字符串编码格式实现思路
2022/09/23 Java/Android