基于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 相关文章推荐
Firefox和IE浏览器兼容JS脚本写法小结
Jul 07 Javascript
了解jQuery技巧来提高你的代码
Jan 08 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
Oct 09 Javascript
jQuery大于号(&gt;)选择器的作用解释
Jan 13 Javascript
js实现图片漂浮效果的方法
Mar 02 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
Aug 26 Javascript
jQuery解析json格式数据简单实例
Jan 22 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
angularJS的radio实现单项二选一的使用方法
Feb 28 Javascript
vue中使用echarts制作圆环图的实例代码
Jul 27 Javascript
详解JS取出两个数组中的不同或相同元素
Mar 20 Javascript
vue+element实现图片上传及裁剪功能
Jun 29 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
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
javascript实现可键盘控制的抽奖系统
2016/03/10 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
[19:15]DK战队纪录片
2014/09/02 DOTA
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现在目录中查找指定文件的方法
2014/11/11 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
python字符串格式化方式解析
2019/10/19 Python
python二维键值数组生成转json的例子
2019/12/06 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
博士生入学考试推荐信
2013/11/17 职场文书
农民致富事迹材料
2014/01/23 职场文书
电子商务专业求职信
2014/03/08 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
经营场所证明范本
2015/06/19 职场文书
儿子满月酒致辞
2015/07/29 职场文书
新郎结婚感言
2015/07/31 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android