JQuery实现级联下拉框效果实例讲解


Posted in Javascript onSeptember 17, 2015

用JQuery和select来实现汽车厂商和汽车类型的联动,参考过程如下
效果图:

     JQuery实现级联下拉框效果实例讲解

逻辑分析图:

JQuery实现级联下拉框效果实例讲解

html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>级联下拉框效果</title> 
<link rel="stylesheet" type="text/css" href="css/chainselect.css"> 
<script language="javascript" type="text/javascript" src="js/jquery.js"></script> 
<script language="javascript" type="text/javascript" src="js/chainselect.js"></script> 
</head> 
 
<body> 
 <div class="car"> 
  <span class="carname"> 
   汽车厂商: 
   <select> 
    <option value="">请选择汽车厂商</option> 
    <option value="BMW">宝马</option> 
    <option value="Audi">奥迪</option> 
    <option value="VW">大众</option> 
   </select> 
   <img src="images/pfeil.gif" alt="有数据"/> 
  </span> 
  <span class="cartype"> 
   汽车类型: 
   <select></select> 
  </span>  
 </div> 
</body> 
</html>

css代码:

.car { 
 text-align:center; 
} 
.cartype{ 
 display:none; 
}

js代码

$(document).ready(function(){ 
 //找到下拉框 
 var carnameSelect = $(".carname").children("select"); 
 var cartypeSelect = $(".cartype").children("select"); 
  
 //给下拉框注册事件 
 carnameSelect.change(function(){ 
  var carnameValue = $(this).val(); 
  if( carnameValue != ""){ 
   //carnameValue不为空的情况接着判断 
   if(!carnameSelect.data(carnameValue)){ 
    //不在缓冲区中,需要向服务器请求 
    $.post("ChainSelect",{keyword:carnameValue,type:"top"},function(data){ 
     if (data.length != 0){ 
      //返回的数据不为空 
      cartypeSelect.html(""); 
      $("<option value=''>请选择汽车类型</option>").appendTo(cartypeSelect); 
      for(var i = 0;i < data.length; i++ ){ 
       $("<option value =' " + data[i] + " '> "+ data[i] +"</option>").appendTo(cartypeSelect); 
      } 
      cartypeSelect.parent().show(); 
      carnameSelect.next().show(); 
     }else{ 
      //返回的数据为空 
      cartypeSelect.parent().hide(); 
      carnameSelect.next().hide(); 
     } 
     carnameSelect.data(carnameValue,data); 
    },"json"); 
   }else{ 
    //在缓冲区中 
    var data = carnameSelect.data(carnameValue); 
    if (data.length != 0){ 
      //返回的数据不为空 
      cartypeSelect.html(""); 
      $("<option value=''>请选择汽车类型</option>").appendTo(cartypeSelect); 
      for(var i = 0;i < data.length; i++ ){ 
       $("<option value =' " + data[i] + " '> "+ data[i] +"</option>").appendTo(cartypeSelect); 
      } 
      cartypeSelect.parent().show(); 
      carnameSelect.next().show(); 
     }else{ 
      //返回的数据为空 
      cartypeSelect.parent().hide(); 
      carnameSelect.next().hide(); 
     } 
   } 
  }else{ 
   //carnameValue为空的情况,隐藏第二个下拉框 
   cartypeSelect.parent().hide(); 
   carnameSelect.next().hide(); 
  } 
 }); 
  
});

如果大家还想深入学习,可以点击jquery下拉框效果汇总、JavaScript下拉框效果汇总进行学习。

以上就是利用JQuery和select实现级联下拉框的小例子,希望对大家的学习有所帮助。

Javascript 相关文章推荐
javascript 鼠标滚轮事件
Apr 09 Javascript
js左侧多级菜单动态的解决方案
Feb 01 Javascript
js面向对象 多种创建对象方法小结
May 21 Javascript
node.js中的fs.lchownSync方法使用说明
Dec 16 Javascript
对JavaScript客户端应用编程的一些建议
Jun 24 Javascript
使用vue-aplayer插件时出现的问题的解决
Mar 02 Javascript
详解如何用typescript开发koa2的二三事
Nov 13 Javascript
js实现图片局部放大效果详解
Mar 18 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
Aug 04 Javascript
vue设置动态请求地址的例子
Nov 01 Javascript
React实现轮播效果
Aug 25 Javascript
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
JS+CSS实现精美的二级导航效果代码
Sep 17 #Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
Sep 17 #Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
Sep 17 #Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
Sep 17 #Javascript
jQuery实现折叠、展开的菜单组效果代码
Sep 16 #Javascript
ANGULARJS中使用JQUERY分页控件
Sep 16 #Javascript
js实现tab切换效果实例
Sep 16 #Javascript
You might like
PHP.MVC的模板标签系统(四)
2006/09/05 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
php修改数组键名的方法示例
2017/04/15 PHP
javascript新手语法小结
2008/06/15 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
python如何生成网页验证码
2018/07/28 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
python将时分秒转换成秒的实例
2019/12/07 Python
python3爬取torrent种子链接实例
2020/01/16 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
c/c++某大公司的两道笔试题
2014/02/02 面试题
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
北大自主招生自荐信
2013/10/19 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
搞笑结婚保证书
2015/05/08 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书