基于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 相关文章推荐
childNodes.length与children.length的区别
May 14 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
Mar 10 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
Aug 02 Javascript
PHP PDO操作总结
Nov 17 Javascript
在IE8上JS实现combobox支持拼音检索功能
May 23 Javascript
通过扫描二维码打开app的实现代码
Nov 10 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
Jun 19 Javascript
puppeteer库入门初探
Jan 09 Javascript
node后端服务保活的实现
Nov 10 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
Dec 16 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 IP转换整形(ip2long)的详解
2013/06/06 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
vue router下的html5 history在iis服务器上的设置方法
2017/10/18 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
python数据封装json格式数据
2018/03/04 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
金山毒霸系列的笔试题
2013/04/13 面试题
品学兼优的大学生自我评价
2013/09/20 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
家长给学校的建议书
2014/05/15 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
婚宴邀请函
2015/01/30 职场文书
初中语文教学研修日志
2015/11/13 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
python实现简单的聊天小程序
2021/07/07 Python
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL