JS 三级联动 下拉列表

 
<!--
我的思路:
1.页面加载时便进入后台获得第一级的值;
2.当第一级的值改变时,清空第二级和第三级的值,并加载第二级的值
3.当第二级的值改变时,清空第三级的值,并加载第三级的值
--><table>
<tr><th><em>*</em>意向车型:</th><td width="108"><select id="car_brand" onchange="checkBrand()"><option value="">请选择品牌</option></select></td><td width="108"><select id="car_series" onchange="checkSeries()"><option value="">请选择车系</option></select></td><td><select id="car_model"><option value="">请选择车型</option></select></td>
</tr>
</table>
 
<script type="text/javascript">// 页面加载时加载第一级
    loadBrand();// 加载第一级function loadBrand(){document.getElementById("car_brand").options.length=0;$.ajax({type: "POST",url: "action/do_car.jsp",data: "method=load_brand",dataType: "json",success: function(data) {var msg = data.msg;switch (msg) {case "success":var select = document.getElementById("car_brand");var option_one = new Option("请选择品牌", -1);   // create default optionselect.options.add(option_one);                // add valuefor (i = 0; i < data.brands.length; i++) {// to load optionvar option = new Option(data.brands[i].name, data.brands[i].brandId);select.options.add(option);}break;default:alert(msg);break;}},error: function(xhr) {alert("错误:" + xhr.status + " " + xhr.statusText);}})}// 第一级改变时加载第二级function checkBrand(){document.getElementById("car_series").options.length=0;document.getElementById("car_model").options.length=0;loadSeries();}// 加载第二级function loadSeries(){$.ajax({type: "POST",url: "action/do_car.jsp",data: "method=load_series&brandid="+document.getElementById("car_brand").value,dataType: "json",success: function(data) {var msg = data.msg;switch (msg) {case "success":var series = document.getElementById("car_series");var one_series = new Option("请选择车系",-1);series.options.add(one_series);var model = document.getElementById("car_model");var one_model = new Option("请选择车型",-1);model.options.add(one_model);for (i = 0; i < data.cars.length; i++) {var option = new Option(data.cars[i].name, data.cars[i].carsId);series.options.add(option);}break;default:alert(msg);break;}},error: function(xhr) {alert("错误:" + xhr.status + " " + xhr.statusText);}})}/*-----------------------------------------*/// 第二级改变时加载第三级function checkSeries(){document.getElementById("car_model").options.length=0;loadModel();}// 加载第三级function loadModel(){$.ajax({type: "POST",url: "action/do_car.jsp",data: "method=load_model&seriesid="+document.getElementById("car_series").value,dataType: "json",success: function(data) {var msg = data.msg;switch (msg) {case "success":var select = document.getElementById("car_model");var option_one = new Option("请选择车型",-1);select.options.add(option_one);for (i = 0; i < data.car.length; i++) {var option = new Option(data.car[i].name, data.car[i].carId);select.options.add(option);}break;default:alert(msg);break;}},error: function(xhr) {alert("错误:" + xhr.status + " " + xhr.statusText);}})}
</script>
 

 

转载于:https://www.cnblogs.com/lixin890808/archive/2013/04/06/3002816.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20.网页卷去的距离与偏移量

我们先来看看下面的图&#xff1a; scrollLeft:设置或获取位于给定对象左边界与窗口中目前可见内容的最左端之间的距离 &#xff0c;即左边灰色的内容。 scrollTop:设置或获取位于对象最顶端与窗口中可见内容的最顶端之间的距离 &#xff0c;即上边灰色的内容。 offsetLeft:获取…

【电赛】一阶卡尔曼滤波器 滤波效果良好

目录代码kalman.ckalman.h滤波效果很久以前抄的&#xff0c;忘了是从哪弄的了 我把它改成了这种结构体指针传参的形式&#xff0c;方便在比赛中应用。应用举例见MSP432 PID 电机调角度、调速。 它曾助力笔者获2020年电赛省一等奖。 代码 Q:过程噪声协方差 Q参数调滤波后的曲线…

130. Surrounded Regions

题目&#xff1a; Given a 2D board containing X and O, capture all regions surrounded by X. A region is captured by flipping all Os into Xs in that surrounded region. For example, X X X X X O O X X X O X X O X XAfter running your function, the board should …

计算机是如何启动的?

从打开电源到开始操作&#xff0c;计算机的启动是一个非常复杂的过程。 我一直搞不清楚&#xff0c;这个过程到底是怎么回事&#xff0c;只看见屏幕快速滚动各种提示......这几天&#xff0c;我查了一些资料&#xff0c;试图搞懂它。下面就是我整理的笔记。 零、boot的含义 先问…

hdu 1536(博弈)

传送门&#xff1a;S-Nim 题意&#xff1a;给n个数的集合s&#xff0c; 再给m 组数据&#xff0c;每组表示 k 堆石子&#xff0c;每次可以取的个数只能是集合s中的数量。问先手胜还是输&#xff1f; 分析&#xff1a;sg函数的经典运用&#xff0c;先预处理出所有数量为0~10000的…

写了个 Markdown 命令行小工具,希望能提高园友们发文的效率!

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

MSP432P401R TI Drivers 库函数学习笔记(七)I2C驱动OLED屏幕

目录API (机翻)上机实战引脚配置I2C引脚配置工作指示灯LED1引脚配置文件结构I2C 初始化、读写函数myI2C.cmyI2C.hOLED初始化和测试代码main.cmain.hOLED 驱动程序OLED.cOLED.hOLED_Font.h任务管理myTask.cmyTask.h显示效果平台&#xff1a;Code Composer Studio 10.4.0 MSP432…

xcode5. 安装cocos2d-x 学习中。。。

xcode5. 安装cocos2d&#xff0d;x 学习中。。。 找了一些帖子 没搞出来&#xff0c;后来找到原因了 如今的cocos2d版本号在xcode.5上 没右模版了。用命令行 来运行。看了官方的文档。最终攻克了&#xff5e;&#xff5e;&#xff5e; 对于自己解决的问题都会感到点兴奋。。…

在WPF中实现玻璃模糊效果

在WPF中实现玻璃模糊效果还是比较简单的&#xff0c;主要方式如下&#xff1a; 添加一个Rectangle或其它控件作为玻璃放到顶部图层 将底部图像作为Brush&#xff08;大多数的时候用VisualBrush&#xff09;填充到Rectangle中 对该Rectangle添加高斯模糊效果 在该Rectangle上叠加…

【2013.4.6】微软暑期实习生答案(zz)

这套题难度评价&#xff1a;与去年相比技术上更多考得是语言细节而非算法&#xff0c;很多常规的智力题都是以前老题了&#xff0c;所以总体感觉难度不是很大&#xff0c;但是想拿高分也比较困难。最后吐槽下出题&#xff0c;居然有两道题不严谨&#xff0c;确实让很多同学在做…

【cartographer_ros】五: 发布和订阅陀螺仪Imu信息

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

css reset

最近在想把自己写的demo写成一个完整的项目&#xff0c;在写css reset的时候想参考别人的css reset是怎么来写的&#xff0c;也有想直接下载normalize.css这样的css reset直接用。但是看了张神写的对css reset的重新审视受益匪浅&#xff0c;文章发布的比较早原文地址http://ww…

MSP432P401R TI Drivers 库函数学习笔记(八)ADC

目录API (机翻)上机实战引脚配置ADC引脚配置串口引脚配置指示工作状态的LED1引脚配置代码部分ADC初始化和读取函数myADC.cmyADC.h获取数据并通过串口发送main.cmain.h任务管理函数myTask.cmyTask.h串口代码myUart.cmyUart.h实验结果平台&#xff1a;Code Composer Studio 10.4.…

PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据

介绍承接上文的PHP 杂谈《重构-改善既有代码的设计》之 重新组织你的函数继续重构方面的内容。这章主要针对数据的重构。1、争论的声音——直接访问Field还是通过函数&#xff08;Accessor&#xff09;访问Field2.修改Array为Object&#xff1a;当你看到一个Array很像一个数据结…

轻松获取LAMP环境的配置参数

大家是否遇到过去了新公司&#xff0c;公司内的LAMP&#xff0c;LNMP等所有的环境都是配置好的&#xff08;已经在提供服务了&#xff09;&#xff0c;公司又没有留下部署文档&#xff0c;甚至安装LAMP&#xff0c;LAMP等环境的人已经和你交接完离职了&#xff0c;那么线上服务…

Python迷宫生成器

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

数组的操作

有关操作数组的方法(函数): (常用)push() 从尾部添加新元素 操作的是原数组 pop() 从尾部删除一个元素 unshift() 从开头添加元素 shift() 从开头删除元素 slice(start, end) 获取数组中某些元素&#xff0c;返回一个新数组&#xff1b;从start下标位置起开始截取到end下标(不…

MSP430F5529 DriverLib 库函数I2C驱动OLED屏幕

目录I2C驱动代码MSP430F5529_I2C.cMSP430F5529_I2C.hOLED初始化及测试OLED驱动代码OLED.cOLED.hOLED_Font.h显示效果平台&#xff1a;Code Composer Studio 10.4.0 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) I2C驱动代码 P3.0为SDA&#xff0c;P3.1为S…

java经典算法四十题

java经典算法四十题 【程序8】题目&#xff1a;求saaaaaaaaaaaa...a的值&#xff0c;其中a是一个数字。例如222222222222222(此时共有5个数相加)&#xff0c;几个数相加有键盘控制。1.程序分析&#xff1a;关键是计算出每一项的值。import java.io.*; public class Sumloop { p…

html调用servlet(JDBC在Servlet中的使用)(2)

5.修改数据 5.1编写查询条件页面 修改单条数据的时候&#xff0c;首先是查询出单个数据的详细信息&#xff0c;然后根据实际需要部分修改或者全部修改。修改之后&#xff0c;数据会提交到数据库&#xff0c;数据库中保存更新以后的数据。 查询出单条数据的查询条件页面代码如下…