原生javascript AJAX 三级联动
<!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 三级联动的更多相关文章
- 使用 AJAX + 三级联动 实现分类出全国各地的省,市,区
使用AJAX + 三级联动 实现分类出全国各地的省,市,区 也可以将下面的显示页面所写的 function循环,封装成js文件,就是在写代码软件里创建一个js文件,就和创建一个HTML或php文件一 ...
- ajax验证表单元素规范正确与否 ajax展示加载数据库数据 ajax三级联动
一.ajax验证表单元素规范正确与否 以用ajax来验证用户名是否被占用为例 1创建表单元素<input type="text" id="t"> 2 ...
- AJAX 三级联动
新的封装类 <?php class DBDA { public $host="localhost";//服务器地址 public $uid="root"; ...
- ajax三级联动下拉菜单
ajax写三级联动,先写一个文件类吧,以后用的时候直接调用即可: 来找一张表: 实现: 中国地域的三级联动:省.市.区: 图: 说一下思路: (1)当用户选择省份的时候触发事件,把当前的省份的id通过 ...
- 2019.03.25 Ajax三级联动
所谓三级联动就是,一层接着一层,根据上一层的选择给出这一层的结果 如选择市之后,会给出相应的区,然后到相应的县这就是联动 配置视图 from django.core import serialize ...
- 0509 关于Ajax + 三级联动示例
关于Ajax 1.干什么的? ajax负责抓取用户名信息,传递给服务器进行校验: 2.属性: onreadystatechange:事件,该事件可以感知ajax状态(readyState)的变化.aj ...
- [Ajax三级联动 无刷新]
三级联动 的效果图 html页面: <body> <label class="fl">区域:</label> <select class= ...
- 2、.net NVelocity中原生javascript ajax封装使用
在页面上,我们经常会遇到局部刷新的例子,这个时候,就需要用到ajax, 因为很多代码都是公用的,所以我们想到了,将代码封装,简化了使用,减少了冗余 javascript ajax代码如下: var x ...
- 原生JS实现三级联动
代码实现 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...
随机推荐
- php调用C#生成的dll(二)
根据上一篇博文,php调用c#生成的动态库,运行测试时报Fatal error: Class 'COM' not found in XXXXXXXXX 原因是php.ini中未开启COM组件的应用,解 ...
- java-http通信调用与创建
java项目使用HTTP的请求.主要有两种方式:①使用JDK自带的java.net包下的HttpURLConnection方式. ②使用apache的HttpClient方式. 一.使用JDK自带的j ...
- spring-IOC容器(二)
一.bean配置里面使用外部属性文件: <bean>中添加context Schema定义,Spring 提供了一个<property-placeholder>元素,可以在be ...
- 集群RedHat6.5+JDK1.8+Hadoop2.7.3+Spark2.1.1+zookeeper3.4.6+kafka2.11+flume1.6环境搭建步骤
1.RHEL 6.5系统安装配置图解教程(rhel-server-6.5) 2.在Linux下安装JDK图文解析 3.RedHat6.5上安装Hadoop集群 4.RedHat6.5安装Spark集群 ...
- excel技巧--多行排成单列
要将上图的多行排成单列的效果,做法如下: 1.在倒数第二列的下方单元格,写入=号,然后再点击倒数第一列第一个单元格.这样复制该单元格的公式. 2.然后对着这个复制好的单元格的右下角一直往下拖拉,尽量拖 ...
- system.Data.Entity.Infrastructure.DbUpdateConcurrencyException: Store update, insert, or delete statement affected an unexpected number of rows (0) 问题
页面控件没有做限制.提交后还可以继续点击,造成了在短时间内的多次请求.查看日志两次错误在200ms之内. 错误信息 system.Data.Entity.Infrastructure.DbUpdate ...
- chrome flash
chrome://settings/content/flash 在Chrome地址栏中输入:chrome://settings/content/flash,进入Flash设置,勾选允许网站运行flas ...
- C/C++中字符串和数字互转小结
一. 数字 转 char*型 1.sprintf函数(适合C和C++) 示例: char str[50]; int num = 345; sprintf(str,"%d",num) ...
- [Easyui - Grid]为easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列
为easyui的datagrid.treegrid增加表头菜单,用于显示或隐藏列 /** * @author 孙宇 * * @requires jQuery,EasyUI * * 为datagrid. ...
- Memcached在.NET应用程序中的使用
在应用程序运行的过程中总会有一些经常需要访问并且变化不频繁的数据,如果每次获取这些数据都需要从数据库或者外部文件系统中去读取,性能肯定会受 到影响,所以通常的做法就是将这部分数据缓存起来,只要数据没有 ...