原生javascript AJAX 三级联动的实现代码


Posted in Javascript onMay 04, 2018

js 三级联动的实现代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>js原生ajax</title>
</head>
<body>
  <select name="sel1">
    <option value="" >-请选择 省/直辖市/自治区-</option>
  </select>
  <select name="sel2">
    <option value="" >-请选择 市-</option>
  </select>
  <input type="text" value="" id="int"/>
  <script>
    var sel1 = document.getElementsByName('sel1')[0];
    var sel2 = document.getElementsByName('sel2')[0];
    var ints = document.getElementById('int');
    // 创建请求对象
    var a = new XMLHttpRequest();
    // 初始化
    a.open('get','city.json','true');
    // 发送
    a.send();
    //readySate 状态码 交互进行到了哪一步
    //0:请求未初始化
    //1:服务器链接已建立
    //2:请求已经接受
    //3:请求处理中
    //4:请求已经完成,且响应已就绪
    //status 交互是否成功
    a.onreadystatechange = function(){
      if(a.status ==200||a.status == 304){
        if(a.readyState == 4){
          var obj = JSON.parse(a.response);//responseText:获得字符串形式的响应数据。
          var b = obj.城市代码;
          for(var i = 0;i<b.length;i++){
            var nOpt = document.createElement('option');
            var nOpt_t =document.createTextNode(b[i].省);
            nOpt.appendChild(nOpt_t);
            sel1.appendChild(nOpt);
            nOpt.value = i;
            console.log(ints.value)
          }
          sel1.onchange = function (){
            var index = sel1.selectedIndex;  //获取select选择的option的下标值
            var va = sel1.options[index].value//获取select第几个option的value值
            var city = b[va].市;    //获取他下边的市
            sel2.options.length = 1;  //清空所有的select下的option的值
            for(var i = 0;i<city.length;i++){
              var nOpt = document.createElement('option');
              var nOpt_t =document.createTextNode(city[i].市名);
              nOpt.appendChild(nOpt_t);
              sel2.appendChild(nOpt);
              nOpt.value = i;
              ints.value = "";
            }
          }
          sel2.onchange = function (){
            var sel1v = sel1.value;
            var sel2v = sel2.value;
            var intsi = b[sel1v]['市'][sel2v]['编码'];
            ints.value = intsi;
          }
        }
      }
    }
  </script>
</body>
</html>

总结

以上所述是小编给大家介绍的原生javascript AJAX 三级联动的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
TinyMCE 新增本地图片上传功能
Nov 05 Javascript
js采用map取到id集合组并且实现点击一行选中一行
Dec 16 Javascript
js验证上传图片的方法
May 12 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
通过BootStrap实现轮播图的实际应用
Sep 26 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
React学习之事件绑定的几种方法对比
Sep 24 Javascript
vue-cli + sass 的正确打开方式图文详解
Oct 27 Javascript
基于 D3.js 绘制动态进度条的实例详解
Feb 26 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
使用webpack搭建pixi.js开发环境
Feb 12 Javascript
原生JS实现多条件筛选
Aug 19 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
May 04 #Javascript
vue裁切预览组件功能的实现步骤
May 04 #Javascript
详解vue组件基础
May 04 #Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 #Javascript
[原创]jquery判断元素内容是否为空的方法
May 04 #jQuery
Vue.js 踩坑记之双向绑定
May 03 #Javascript
Vue利用canvas实现移动端手写板的方法
May 03 #Javascript
You might like
PHP实现文件安全下载
2006/10/09 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
php入门教程 精简版
2009/12/13 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
Aptana调试javascript图解教程
2009/11/30 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
详解Python3.1版本带来的核心变化
2015/04/07 Python
20个常用Python运维库和模块
2018/02/12 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
幼儿园中秋节活动方案2013
2014/01/29 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python