原生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 相关文章推荐
jquery事件机制扩展插件 jquery鼠标右键事件。
Dec 26 Javascript
GRID拖拽行的实例代码
Jul 18 Javascript
javascript跨域的4种方法和原理详解
Apr 08 Javascript
JavaScript定义类和对象的方法
Nov 26 Javascript
javascript 动态修改css样式方法汇总(四种方法)
Aug 27 Javascript
jQuery移动端图片上传组件
Jun 12 Javascript
Node.js的环境安装配置(使用nvm方式)
Oct 11 Javascript
jQuery扩展+xml实现表单验证功能的方法
Dec 25 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
Jul 16 Javascript
vue多页面开发和打包正确处理方法
Apr 20 Javascript
js实现网页同时进行多个倒计时功能
Feb 25 Javascript
如何通过javaScript去除字符串两端的空白字符
Feb 06 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
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
Javascript的比较汇总
2016/07/25 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
jQuery实现增删改查
2020/12/22 jQuery
原生JS实现音乐播放器的示例代码
2021/02/25 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python实现把数字转换成中文
2015/06/29 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
Django中使用Celery的方法步骤
2020/12/07 Python
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
营销与策划专业毕业生求职信
2013/11/01 职场文书
护理中职生求职信范文
2014/02/24 职场文书
读书小明星事迹材料
2014/05/03 职场文书
安全横幅标语
2014/06/09 职场文书
假期安全教育广播稿
2014/10/04 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
Python之matplotlib绘制折线图
2022/04/13 Python