原生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 相关文章推荐
“不能执行已释放的Script代码”错误的原因及解决办法
Sep 09 Javascript
始终在屏幕中间显示Div的代码(css+js)
Mar 10 Javascript
JavaScript中的异常捕捉介绍
Dec 31 Javascript
javascript实现图片循环渐显播放的方法
Feb 24 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 Javascript
Bootstrap表单简单实现代码
Mar 06 Javascript
vue router2.0二级路由的简单使用
Jul 05 Javascript
vue axios数据请求及vue中使用axios的方法
Sep 10 Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
vue 中url 链接左边的小图标更改问题
Dec 30 Javascript
Javascript执行上下文顺序的深入讲解
Nov 04 Javascript
nuxt引入组件和公共样式的操作
Nov 05 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
杏林同学录(七)
2006/10/09 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python简单定义与使用二叉树示例
2018/05/11 Python
详解Python with/as使用说明
2018/12/13 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
html5教程画矩形代码分享
2013/12/04 HTML / CSS
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
英国网上电器商店:Electricshop
2020/03/15 全球购物
元旦红领巾广播稿
2014/02/19 职场文书
《恐龙》教学反思
2014/04/27 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
python实现局部图像放大
2021/11/17 Python
Oracle配置dblink访问PostgreSQL的操作方法
2022/03/21 PostgreSQL