基于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字符串累加Array不一定比字符串累加快(根据电脑配置)
May 14 Javascript
window.print打印指定div指定网页指定区域的方法
Aug 04 Javascript
jQuery中Form相关知识汇总
Jan 06 Javascript
JavaScript实现瀑布流布局
Jun 28 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
May 19 Javascript
JavaScript DOM节点操作方法总结
Aug 23 Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 Javascript
Vue上传组件vue Simple Uploader的用法示例
Aug 25 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
Aug 31 Javascript
socket在egg中的使用实例代码详解
May 30 Javascript
vue 自定义右键样式的实例代码
Nov 06 Javascript
详解ES6实现类的私有变量的几种写法
Feb 10 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
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
PHP 采集程序中常用的函数
2009/12/09 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
php的dl函数用法实例
2014/11/06 PHP
php数组随机排序实现方法
2015/06/13 PHP
php curl常用的5个经典例子
2017/01/20 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
php数组遍历类与用法示例
2019/05/24 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
python操作列表的函数使用代码详解
2017/12/28 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python3.x实现base64加密和解密
2019/03/28 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
python中下标和切片的使用方法解析
2019/08/27 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
司机工作自我鉴定
2014/09/19 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书