解析JS实现无刷新联动菜单技巧

本文向大家简单介绍一下什么是联动菜单,以及JS实现无刷新联动菜单(select)的方法,其实,联动菜单的实现原理非常简单,本文详细介绍了联动菜单的实现方式,知道了原理,我们可以很容易地制作从XML、数据库加载的无限级联动菜单。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、嘉善网站维护、网站推广。

JS实现无刷新联动菜单(select)的方法

所谓联动菜单,就是后一个下拉框的选项是根据前一个下拉框被选中的值来决定的,一个典型的应用就是省市联动菜单了,市的下拉选项是根据你选了哪个省来决定的,类似的需求我们经常遇到,相信许多新手都被这个问题困扰过。

其实,联动菜单的实现原理非常简单,本文详细介绍了联动菜单的实现方式,知道了原理,我们可以很容易地制作从XML、数据库加载的无限级联动菜单。

联动菜单的实现方法:

1.确定数据格式:

首先,我们介绍一下创建Option的语法:

Code:

 
 
 
  1.   varnewOption=newOption(optionText,optionvalue);  
  2.  

根据上面的语法,我们知道select选项分optionText和optionvalue两个内容,optionText即下拉框中我们看到的选项,而optionvalue则是提交的实际值。比如一个选项我们看到的是“北京”,而实际提交的值是“010”。

为了保持一致,我们确定选项的格式为:

Code:

 
 
 
  1.   {txt:"选项名",val:"选项值"}  
  2.  

那么一个选项组则是:

Code:

 
 
 
  1. varchildArr=[];  
  2. childArr['父选项值1']=[  
  3.   {txt:"选项名1",val:"选项值1"},  
  4.   {txt:"选项名2",val:"选项值2"},  
  5.   {txt:"选项名3",val:"选项值3"},  
  6.   ...  
  7.   {txt:"选项名n",val:"选项值n"}  
  8. ]  
  9. childArr['父选项值2']=[  
  10.   {txt:"选项名1",val:"选项值1"},  
  11.   {txt:"选项名2",val:"选项值2"},  
  12.   {txt:"选项名3",val:"选项值3"},  
  13.   ...  
  14.   {txt:"选项名n",val:"选项值n"}  
  15. ]  
  16.  

 其中“父选项值”是父下拉列表选中的值。

注意:[]和{}中的值是以“,”(逗号)分隔的,但是***一个值后面不能有“,”(逗号),否则语法错误,PHP程序员要特别注意!!!#p#

2.根据传入的数组创建选项列表:

Code:

 
 
 
  1. for(vari=0;i
  2. {  
  3.   selectObj.options[i]=newOption(optionList[i].txt,optionList[i].val);  
  4. }  
  5.  

 3.在设置选项之前,我们需要先将原有选项清空:

Code:

 
 
 
  1. functionremoveOptions(selectObj)  
  2. {  
  3.   if(typeofselectObj!='object')  
  4.   {  
  5.     selectObj=document.getElementById(selectObj);  
  6.   }  
  7.   //原有选项计数  
  8.   varlen=selectObj.options.length;  
  9.   for(vari=0;i
  10.   {  
  11.     //移除当前选项  
  12.     selectObj.options[0]=null;  
  13.   }  
  14. }  
  15.  

   注意,这里不是用selectObj.options[i]而是用的selectObj.options[0],由于在options[0]删除后,后面的选项就会补上,因此,我们只需要selectObj.options[0]=null。

4.设置一个提示选择项和默认选择项:

通常我们在下拉列表中会设置一个提示选择项,如:“请选择城市”,这个选项值为空,作用只是提示用户执行选择操作。

另外,下拉列表也需要能够设置默认选择项,即在页面加载的时候,设置选中状态的项目。

完整代码如下:

Javascript:

 
 
 
  1. type="text/javascript"> 
  2.  
  3.  
  4.  

 #p#示例代码:

HTML:

 
 
 
  1. type="text/javascript">   
  2. varcityArr=[];  
  3. cityArr['江苏省']=[  
  4. {txt:'南京',val:'南京'},  
  5. {txt:'无锡',val:'无锡'},      
  6. {txt:'徐州',val:'徐州'},      
  7. {txt:'苏州',val:'苏州'},      
  8. {txt:'南通',val:'南通'},      
  9. {txt:'淮阴',val:'淮阴'},      
  10. {txt:'扬州',val:'扬州'},      
  11. {txt:'镇江',val:'镇江'},      
  12. {txt:'常州',val:'常州'}    
  13. ];  
  14. cityArr['浙江省']=[      
  15. {txt:'杭州',val:'杭州'},       
  16. {txt:'宁波',val:'宁波'},      
  17. {txt:'温州',val:'温州'},      
  18. {txt:'湖州',val:'湖州'}    
  19. ];   
  20. functionsetCity(province){      
  21. setSelectOption('city',cityArr[province],'-请选择-');  
  22. }   
  23.    
  24. onchange="if(this.value!='')  
  25. setCity(this.options[this.selectedIndex].value);">    
  26. -请选择-    
  27. 江苏省    
  28. 浙江省 
  29.  
  30. 省   
  31.     
  32. -请选择- 
  33.  
  34. 市  
  35.  

   根据这个结构,设置好数据,我们可以很容易的实现无限级联动菜单。或者我们也可以将数据存放在文件或数据库中,通过Ajax获取数据。

【编辑推荐】

  1. JavaScript对象的定义及创建实例
  2. 常用JavaScript内部对象
  3. JavaScript中图像处理技巧
  4. JavaScript函数中arguments对象
  5. Javascript中CSS属性float特殊写法

当前标题:解析JS实现无刷新联动菜单技巧
分享路径:http://www.mswzjz.com/qtweb/news44/177144.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联