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

(0)

相关推荐

  • jquery模拟SELECT下拉框取值效果

    jquery模拟SELECT框,效果图如下:   复制代码 代码如下: <!DOCTYPE html> <html lang="en"> <head> <title>jquery模拟SELECT框</title> <meta charset="utf-8"> <style> body{padding:0;margin:0;font-size:12px;} ul,li{list-sty

  • 在js(jquery)中获得文本框焦点和失去焦点的方法

    先来看javascript的直接写在了input上 复制代码 代码如下: <input name="pwuser" type="text" id="pwuser" class="input" value="楼盘账号" onBlur="if(this.value=='') this.value='楼盘账号';" onFocus="if(this.value=='楼盘账号')

  • 利用Jquery实现可多选的下拉框

    首先下载jquery.multiselect.js 的插件然后复制下列代码,只需改下路径就可以实现可多选下拉框.如果好用还请多多支持! 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://w

  • 基于jquery的无限级联下拉框js插件

    灵活性方面考虑了比较多的方面,提供了几个重要的配置方便在各类环境下使用,欢迎各位童鞋使用,源码完全开放.开发这个插件的缘于前段时间维护一个4级级联下拉框被里面200行代码及复杂的结构和bug所郁闷(之所以这么多代码是因为该级联下拉框有时只出现2个或3个),想到这类的需求其实经常都能遇到,jquery里没有这样比较好的插件,索性自己开发个.源代码并不复杂,稍微复杂的地方在第二个插件使用了缓存,造成理解起来十分困难,后面会做些解释. 插件一:适合在不与服务器进行AJAX交互情况使用,需预先将所有下拉

  • jQuery中ztree 点击文本框弹出下拉框的实例代码

    废话不多说了,具体代码如下所示: <link rel="stylesheet" href="${ctx}/res/js/ztree/css/demo.css" type="text/css"/> <link rel="stylesheet" href="${ctx}/res/js/ztree/css/zTreeStyle/zTreeStyle.css" type="text/cs

  • jQuery实现点击下拉框中的值累加到文本框中的方法示例

    本文实例讲述了jQuery实现点击下拉框中的值累加到文本框中的方法.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale

  • jquery获得下拉框值的代码

    获取Select : 获取select 选中的 text : $("#ddlRegType").find("option:selected").text(); 获取select选中的 value: $("#ddlRegType ").val(); 获取select选中的索引: $("#ddlRegType ").get(0).selectedIndex; 设置select: 设置select 选中的索引: $("#d

  • Jquery操作下拉框(DropDownList)实现取值赋值

    1. 获取选中项: 复制代码 代码如下: 获取选中项的Value值: $('select#sel option:selected').val(); 或者 $('select#sel').find('option:selected').val(); 获取选中项的Text值: $('select#seloption:selected').text(); 或者 $('select#sel').find('option:selected').text(); 2. 获取当前选中项的索引值: 复制代码 代码

  • jquery动态加载select下拉框示例代码

    如题,直接上代码,实战学习. 复制代码 代码如下: <head><title>jquery实现动态加载select下拉选项</title> <script type="text/javascript"> function init(){ makemoduleSelect(); } //加载模板下拉框选项 function makemoduleSelect(){ $.ajax({ url : 'indexStatisticsAction_g

  • 基于jquery实现的可编辑下拉框实现代码

    原理就是一个textbox加一个ul模拟下拉框,用font模拟一个下拉按钮. 一.制作静态效果 先用css和html,做出一个应该有的样子.这里这两个我使用的是字体,可以在icomoon网站上面自己制作.用字体的好处是和输入框定位很方便,而且还可以控制大小颜色等,唯一的不足是IE6和IE7由于不支持:before选择器,导致无法显示这种字体,但可以通过一些其他方法实现,大家可以自己尝试下.下面是html代码 <span style="display:inline-block;positio

  • jquery设置text的值示例(设置文本框 DIV 表单值)

    jquery设置内容 - text().html() 以及 val() 我们将使用前一章中的三个相同的方法来设置内容: text() - 设置或返回所选元素的文本内容html() - 设置或返回所选元素的内容(包括 HTML标记)val() - 设置或返回表单字段的值 下面的例子演示如何通过 text().html() 以及 val() 方法来设置内容: 实例 复制代码 代码如下: $("#btn1").click(function(){$("#test1").te

随机推荐