用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和select实现级联下拉框的小例子,希望对大家的学习有所帮助。
本文地址:https://www.stayed.cn/item/6392
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我