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

 更新时间:2015年09月17日 14:06:20   投稿:lijiao  
这篇文章主要介绍了JQuery实现级联下拉框效果,需要的朋友可以参考下

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

    

逻辑分析图:

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实现级联下拉框的小例子,希望对大家的学习有所帮助。

相关文章

  • servlet+jquery实现文件上传进度条示例代码

    servlet+jquery实现文件上传进度条示例代码

    现在文件的上传,特别是大文件上传,都需要进度条。这篇文章主要介绍了servlet+jquery实现文件上传进度条示例代码,有兴趣的可以了解一下。
    2017-01-01
  • jquery 将disabled的元素置为enabled的三种方法

    jquery 将disabled的元素置为enabled的三种方法

    在jquery中可以通过jqueryObj.attr("disabled","disabled")将页面中某个元素置为不可编辑或触发状态,但是在jquery的API reference中并没说明怎么将页面置为disable的元素重新置为可触发或可编辑的。
    2009-07-07
  • 推荐40个非常优秀的jQuery插件和教程【系列三】

    推荐40个非常优秀的jQuery插件和教程【系列三】

    jQuery 在如今的 Web 开发项目中扮演着重要角色,jQuery 以其插件众多、独特、轻量以及支持大规模的网站开发闻名。本文大家分享40个实用的 jQuery 插件,可以根据您的项目需要来选择使用
    2011-11-11
  • jQuery前端框架easyui使用Dialog时bug处理

    jQuery前端框架easyui使用Dialog时bug处理

    本文介绍了在jQuery前端框架easyui开发UI时,使用Dialog时发现遮罩无法覆盖页面内容,而且对话框也显示不出来,经过一番研究,才发现问题所在,这里分享给大家,有相同情况的小伙伴可以参考下
    2014-12-12
  • JQuery实现样式设置、追加、移除与切换的方法

    JQuery实现样式设置、追加、移除与切换的方法

    这篇文章主要介绍了JQuery实现样式设置、追加、移除与切换的方法,涉及jQuery样式操作的常用技巧,非常简单实用,需要的朋友可以参考下
    2015-06-06
  • jquery 操作表格实现代码(多种操作打包)

    jquery 操作表格实现代码(多种操作打包)

    最近做东西需要对表格进行操作,用到的动作包括:添加一行数据、删除一行数据、上下移动数据,网上找了很多,但是不能完全满足我的需求,自己琢磨了下,搞了个这个东东
    2011-03-03
  • jQuery动画animate方法使用介绍

    jQuery动画animate方法使用介绍

    用于创建自定义动画的函数。这个函数的关键在于指定动画形式及结果样式属性对象,下面为大家详细介绍下animate方法的具体使用,感兴趣的朋友可以了解下哈
    2013-05-05
  • JQuery性能优化的几点建议

    JQuery性能优化的几点建议

    针对jquery性能优化这个主题,想必大家都有所了解。下面是我搜集点一点资料关于jquery性能优化,大家可以参考参考。
    2014-05-05
  • jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架

    jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架

    想实现一个模态的框框,找了很多的jquery插件,都没有碰到自己满意的于是自己摸索了一个,接下来为大家介绍下实现的思路及代码,希望对你有所帮助
    2013-04-04
  • 使用jQuery如何写一个含验证码的登录界面

    使用jQuery如何写一个含验证码的登录界面

    这篇文章主要介绍了如何写一个含验证码的登录界面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论