原生javascript AJAX 三级联动的实现代码
深入理解原生JavaScript AJAX三级联动的实现艺术
在web开发中,实现三级联动的功能是一项常见的需求。使用原生JavaScript和AJAX技术,我们可以轻松实现这一功能,让用户体验更加流畅。下面,我将为大家展示一段生动、简洁的js三级联动实现代码,希望能给需要的朋友带来一些启发。
HTML部分:
```html
```
JavaScript部分(main.js):
```javascript
window.onload = function() {
var sel1 = document.getElementsByName('sel1')[0];
var sel2 = document.getElementsByName('sel2')[0];
var intInput = document.getElementById('intInput');
// 使用原生AJAX发送请求
var xhr = new XMLHttpRequest();
xhr.open('get', 'city.json', true); // 加载城市数据
xhr.send(); // 发送请求
// 处理响应数据
xhr.onreadystatechange = function() {
if (xhr.status === 200 || xhr.status === 304) { // 请求成功
if (xhr.readyState === 4) { // 数据已完全接收
var data = JSON.parse(xhr.responseText); // JSON数据
// TODO: 根据数据更新下拉列表和输入框的值,实现三级联动逻辑...
}
}
};
};
```
```html
// 假设obj.城市代码包含了城市的层级数据
var cityCodes = obj.城市代码;
// 创建下拉选择框sel1并填充数据
var sel1 = document.getElementById('sel1'); // 假设已经存在对应的select元素ID为sel1
for (var i = 0; i < cityCodes.length; i++) {
var option = document.createElement('option'); // 创建option元素
var textNode = document.createTextNode(cityCodes[i].省); // 创建文本节点
option.appendChild(textNode); // 将文本节点添加到option元素中
sel1.appendChild(option); // 将option元素添加到select中
option.value = i; // 设置option的value值
}
// 当sel1变化时执行的操作
sel1.onchange = function() {
var index = this.selectedIndex; // 获取选中的option的索引值
var selectedValue = this.options[index].value; // 获取选中option的value值,作为城市代码的索引
var cityList = cityCodes[selectedValue].市; // 获取对应的城市列表数据
// 清空sel2的所有option元素,并填充新的城市数据
sel2.options.length = 0; // 清空所有option元素
for (var j = 0; j < cityList.length; j++) {
var option = document.createElement('option'); // 创建新的option元素
var textNode = document.createTextNode(cityList[j].市名); // 创建文本节点,填充城市名称
option.appendChild(textNode); // 将文本节点添加到option元素中
sel2.appendChild(option); // 将新创建的option添加到sel2中
option.value = j; // 设置新option的value值,方便后续使用
}
};
// 当sel2变化时更新编码信息到ints输入框或隐藏域中(假设ints是某个输入框的id)
sel2.onchange = function() {
var sel1Value = sel1.value; // 获取第一级选择的省份值作为索引使用
var sel2Value = this.value; // 获取第二级选择的城市值作为索引使用(假设市的数据结构中也包含索引)
var code = cityCodes[sel1Value].市[sel2Value]['编码']; // 获取对应的编码信息(假设数据结构中包含编码)
document.getElementById('ints').value = code; // 更新到ints输入框中(注意这里是假设id为ints的元素是输入框)如果实际为隐藏域则需要对应调整赋值方式。
};
这里的代码主要实现了三级联动的功能,通过原生JavaScript操作DOM元素和事件监听来实现动态填充下拉选项和更新编码信息的功能。在实际使用中需要根据具体的数据结构和页面结构进行相应的调整和优化。代码中的注释部分是对代码功能的解释,以帮助理解。请确保根据实际需求进行相应的调整和完善。如有任何疑问或需要进一步的帮助,请留言交流。感谢大家对于网络推广的支持和对狼蚁SEO网站的关注! ```
编程语言
- 原生javascript AJAX 三级联动的实现代码
- ASP 使用三层架构 asp中使用类
- 使用vue-route 的 beforeEach 实现导航守卫(路由跳转前
- jQuery实现根据类型自动显示和隐藏表单
- 值得收藏的mysql常用命令集锦
- JavaScript操作HTML DOM的基本方式
- JavaScript中Form表单技术汇总(推荐)
- PHP积分兑换接口实例
- 详解Javascript继承的实现
- PHP 计算两个时间段之间交集的天数示例
- WEB前端实现裁剪上传图片功能
- js中Json的语法与格式
- react-refetch的使用小例子
- [Asp.Net MVC4]验证用户登录实现实例
- 关于ASP.NET中TreeView用法的一个小例子
- bootstrap fileinput完整实例分享