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

时间: 2015-09-14

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

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

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

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

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实现可多选的下拉框

首先下载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实现点击下拉框中的值累加到文本框中的方法示例

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

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

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动态加载select下拉框示例代码

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

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

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

在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中使文本框获得焦点的方法.分享给大家供大家参考.具体分析如下: 由于JQuery中获得的对象还是JQuery对象,对其使用focus()只是使该对象获得onFocus()函数,不能是对象获得焦点,所以要使对象获得焦点,应该调用DOM对象的focus 方法,即: $("#id")[0].focus(); 需要注意两个函数之间的区别: $("#id").focus(); $("#id")[0].focus(); 第一个是增加

python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例

PyQt5单行文本框控件QLineEdit介绍 QLineEdit类是一个单行文本框控件,可以输入单行字符串. QLineEdit类中常用的方法如下表 方法 描述 setAlignment() 按固定值方式对齐文本 Qt.AlignLeft:水平方向靠左对齐 Qt.AlignRight:水平方向靠右对齐 Qt.AlignCenter:水平方向居中对齐 Qt.AlignJustify:水平方向调整间距两端对齐 Qt.AlignTop:垂直方向靠上对齐 Qt.AlignBottom:垂直方向靠下对齐

jQuery文本框得到与失去焦点动态改变样式效果

本文实例讲述了jQuery文本框得到与失去焦点动态改变样式效果.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> body { font: nor

jquery注册文本框获取焦点清空,失去焦点赋值的简单实例

在我们开发过程中特别是用户注册时会有一个效果,就是文本框获取焦点清空提示,如果用户没有输入信息失去焦点赋值上我们的提示语. <html> <head> <meta http-equiv="content-type"content="text/html; charset=UTF-8"/> <script src="http://127.0.0.1/jquery.js"></script>

JS正则(RegExp)判断文本框中是否包含特殊符号

前言 有时,我们希望判断文本框中用户输入的字符是否含有特殊符号(*/#$@),就像用户注册时密码框的填写. demo 利用 RegExp 对象,能很优雅的实现以上需求: // even(文本框内容) function (even) { // 规则对象(flag) var flag = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<><>/?~!@#¥--&*()--|{}[]'::""'.,.? ]&

jQuery+正则+文本框只能输入数字的实现方法

网站中的一个小功能:要求用户只能输入16位数字. 试过javascript的方法: 如:一种方法: //只允许输入数字 function checkkey2(value, e) { var key = window.event ? e.keyCode : e.which; if ((key > 95 && key < 106) || (key > 47 && key < 60)) { } else if (key != 8) { if (window

jquery+ajax+text文本框实现智能提示完整实例

本文实例讲述了jquery+ajax+text文本框实现智能提示的方法.分享给大家供大家参考,具体如下: 模仿百度查询的智能提示 先看看效果图: 代码部分: CSS代码: <style type="text/css"> #searchresult { width: 130px; position: absolute; z-index: 1; overflow: hidden; left: 130px; top: 71px; background: #E0E0E0; bord

js判断文本框剩余可输入字数的方法

本文实例讲述了js判断文本框剩余可输入字数的方法.分享给大家供大家参考.具体如下: 目的:为了更直观的体现用户在文本框输入文本时能看到自己输入了多少字,项目中需要通过判断提示文本框剩余可输入字数 JS实现方法 复制代码 代码如下: <html>  <head runat="server">      <title></title>      <script type="text/javascript"> 

JS模仿编辑器实时改变文本框宽度和高度大小的方法

本文实例讲述了JS模仿编辑器实时改变文本框宽度和高度大小的方法.分享给大家供大家参考.具体如下: 这里演示JS模仿编辑器中实时改变文本框大小,包括宽度和高度的方法,在一些在线编辑器,比如eWebEditor中,就有一个功能,让文本框不断的增大或减小,以适应页面的大小,这个功能是如何实现的呢?请您参考一下这个程序,相信你会从中获益. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-editor-cha-width-height-codes/