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


Posted in Javascript onJanuary 23, 2017

本文实例为大家分享了基于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>

最终显示效果:

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

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

Javascript 相关文章推荐
JavaScript地图拖动功能SpryMap的简单实现
Jul 17 Javascript
javascript获取checkbox复选框获取选中的选项
Aug 12 Javascript
javascript数组随机排序实例分析
Jul 22 Javascript
Javascript简单实现面向对象编程继承实例代码
Nov 27 Javascript
详解AngularJS过滤器的使用
Mar 11 Javascript
Node.js的Express框架使用上手指南
Mar 12 Javascript
最佳的JavaScript错误处理实践
Jul 16 Javascript
基于Vue生产环境部署详解
Sep 15 Javascript
vue组件jsx语法的具体使用
May 21 Javascript
不得不知的ES6小技巧
Jul 28 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
Nov 23 Javascript
JS实现使用POST方式发送请求
Aug 30 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 #Javascript
Javascript Event(事件)的传播与冒泡
Jan 23 #Javascript
js选项卡的制作方法
Jan 23 #Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
Jan 23 #Javascript
详解javascript中对数据格式化的思考
Jan 23 #Javascript
JavaScript 栈的详解及实例代码
Jan 22 #Javascript
jQuery DateTimePicker 日期和时间插件示例
Jan 22 #Javascript
You might like
javascript 拖放效果实现代码
2010/01/22 Javascript
javascript json2 使用方法
2010/03/16 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python logging模块的使用总结
2019/07/09 Python
关于python字符串方法分类详解
2019/08/20 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
python实现超级玛丽游戏
2020/03/18 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
python中添加模块导入路径的方法
2021/02/03 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
应届毕业生就业自荐信
2013/10/26 职场文书
物理教育专业毕业生推荐信
2013/11/03 职场文书
公司人力资源的自我评价
2014/01/02 职场文书
迎元旦广播稿
2014/02/22 职场文书
应届生求职信
2014/05/31 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
结婚保证书
2015/01/16 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
Win11软件图标固定到任务栏
2022/04/19 数码科技