基于MVC方式实现三级联动(JavaScript)

 更新时间:2017年01月23日 08:41:23   作者:小小令  
这篇文章主要为大家详细介绍了基于MVC方式实现三级联动的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了基于MVC三级联动的具体代码,供大家参考,具体内容如下

Html代码:

<div class="box">
  <select class="make">
    <option>请选择品牌</option>
  </select>
  <select class="model">
    <option>请选择车型</option>
  </select>
  <select class="car">
    <option>请选择车款</option>
  </select>
</div>


js代码:

<script src="jquery-1.8.3.min.js"></script>
<script src="car.make.js"></script>
<script src="car.car.js"></script>
<script src="car.model.js"></script>
<script>
  //MVC与OOP模式
  /*
  * mvc编程思想
  * model  模型 (数据)
  * controller  控制器
  * view  视图
  * 下拉事件  由控制器处理
  * 获取数据  由模型处理
  * 数据的显示 由视图处理
  * 控制器  发布指令  调用模型获取数据
  *
  * 控制器拿到数据后发布指令将数据交给视图进行显示
  *
  *
  * */

  //定义一个控制器对象
  var ctrl={
    //初始化函数
    init:function(){
      this.createBrand();
    },
    //品牌函数
    createBrand:function(){

      //调用模型获取数据
      var data=model.getBrand();

      //将数据交给视图去渲染(显示)
      view.showBrand(data);

      this.createModel();
      this.brandChange();
      this.modelChange();
    },
    //车型函数
    createModel:function(){

      var id=$('.make').val();
      var data=model.getModel(id);
      view.showModel(data);
      this.createCar();
    },
    //车款函数
    createCar:function(){

      var id=$('.model').val();
      var data=model.getCar(id);
      view.showCar(data);
    },
    //品牌点击函数
    brandChange:function(){

      $('.make').change(function(){
        ctrl.createModel();
      })
    },
    //车型点击函数
    modelChange:function(){

      $('.model').change(function(){
        ctrl.createCar();
      })
    }
  };

  //定义一个模型对象
  var model={
    //获取第一个数据
    getBrand:function(){

      return car_make;
    },
    //获取第二个数据
    getModel:function(id){

      return car_model[id];
    },
    //获取第三个数据
    getCar:function(id){

      return car_car[id];
    }
  };

  //定义一个视图对象
  var view={
    //下拉列表
    createSelect:function(title,data,element){

      var html='<option>'+title+'</option>';
      $.each(data,function(){

        html+='<option value="'+this.id+'">'+this.name+'</option>'
      });

      element.html(html);

      element.children().eq(1).attr('selected',true);
    },
    //品牌
    showBrand:function(data){

      this.createSelect('请选择品牌',data,$('.make'));
    },
    //车型
    showModel:function(data){

      this.createSelect('请选择车型',data,$('.model'));
    },
    //车款
    showCar:function(data){

      this.createSelect('请选择车款',data,$('.car'));
    }
  };

  ctrl.init();

</script>

最终显示效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 前端JS可视化学习利用向量判断多边形边界

    前端JS可视化学习利用向量判断多边形边界

    这篇文章主要为大家介绍了前端JS可视化学习利用向量判断多边形边界示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 验证控件与Button的OnClientClick事件详细解析

    验证控件与Button的OnClientClick事件详细解析

    以下就是被我已知忽略的问题和解决方案,当我发觉这个问题的时候,冒出了一身冷汗,幸亏做了严格的服务器端验证,不然可就惨了
    2013-12-12
  • 前端技巧之js-md5的简单使用方法

    前端技巧之js-md5的简单使用方法

    这篇文章主要给大家介绍了关于前端技巧之js-md5的简单使用,js-md5是一种前端加密算法,用于在前端对密码等敏感信息进行加密,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • setTimeout函数兼容各主流浏览器运行执行效果实例

    setTimeout函数兼容各主流浏览器运行执行效果实例

    setTimeout是一个很不错的函数,网站页面前端工程师经常将其用于几秒后执行的动作,下文要讲的setTimeout可以很好地兼容IE6,7,8,9以及谷歌等主流浏览器
    2013-06-06
  • js中关于promise的用法解读

    js中关于promise的用法解读

    这篇文章主要介绍了js中关于promise的用法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 用JS实现3D球状标签云示例代码

    用JS实现3D球状标签云示例代码

    3D球状标签云的效果想必很多朋友在浏览网页时都有见到过吧,看起来提复杂的,其实实现起来挺容易的,感兴趣的朋友可以了解下本文
    2013-12-12
  • 浅谈Sublime Text 3运行JavaScript控制台

    浅谈Sublime Text 3运行JavaScript控制台

    下面小编就为大家带来一篇浅谈Sublime Text 3运行JavaScript控制台。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • window.name代替cookie的实现代码

    window.name代替cookie的实现代码

    window.name代替cookie的实现代码,需要的朋友可以参考下。
    2010-11-11
  • 详解JavaScript对象的深浅复制

    详解JavaScript对象的深浅复制

    从层次上来看,对象的复制可以简单地分为浅复制和深复制,顾名思义,浅复制是指只复制一层对象的属性,不会复制对象中的对象的属性,对象的深复制会复制对象中层层嵌套的对象的属性。本文是我在复制对象方面的一些心得总结,由浅复制到深复制,感兴趣的朋友一起学习吧
    2017-03-03
  • 基于layui的table插件进行复选框联动功能的实现方法

    基于layui的table插件进行复选框联动功能的实现方法

    今天小编就为大家分享一篇基于layui的table插件进行复选框联动功能的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09

最新评论