基于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 相关文章推荐
文本链接逐个出现的js脚本
Dec 12 Javascript
js汉字转拼音实现代码
Feb 06 Javascript
jQuery照片伸缩效果不影响其他元素的布局
May 09 Javascript
用js一次改变多个input的readonly属性值的方法
Jun 11 Javascript
jQuery判断元素上是否绑定了指定事件的方法
Mar 17 Javascript
基于jQuery实现二级下拉菜单效果
Feb 01 Javascript
浅谈Sticky组件的改进实现
Mar 22 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
JS沙箱模式实例分析
Sep 04 Javascript
ReactNative之FlatList的具体使用方法
Nov 29 Javascript
在Vue组件上动态添加和删除属性方法
Feb 23 Javascript
angular 表单验证器验证的同时限制输入的实现
Apr 11 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
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
js同时按下两个方向键
2007/12/01 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
如何实现vue的tree组件
2020/12/03 Vue.js
教大家使用Python SqlAlchemy
2016/02/12 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
Python如何将字符串转换为日期
2020/07/31 Python
Django nginx配置实现过程详解
2020/09/10 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
销售员自我评价怎么写
2013/09/19 职场文书
会计专业的自荐信
2013/12/12 职场文书
工作失误检讨书范文大全
2014/01/13 职场文书
更夫岗位责任制
2014/02/11 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
python基础之文件操作
2021/10/24 Python