基于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 浮点数运算 精度问题
Oct 06 Javascript
JavaScript 验证码的实例代码(附效果图)
Mar 22 Javascript
Chrome扩展页面动态绑定JS事件提示错误
Feb 11 Javascript
js/jquery获取文本框输入焦点的方法
Mar 04 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
jquery事件绑定解绑机制源码解析
Sep 19 Javascript
原生JS实现多个小球碰撞反弹效果示例
Jan 31 Javascript
vue实现的组件兄弟间通信功能示例
Dec 04 Javascript
vue路由教程之静态路由
Sep 03 Javascript
小程序实现锚点滑动效果
Sep 23 Javascript
解决vue 子组件修改父组件传来的props值报错问题
Nov 09 Javascript
Vue引入Stylus知识点总结
Jan 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
咖啡的化学
2021/03/03 咖啡文化
用PHP制作的意见反馈表源码
2007/03/11 PHP
php与paypal整合方法
2010/11/28 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
toString()一个会自动调用的方法
2010/02/08 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
vue实现评论列表功能
2019/10/25 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
Python重新引入被覆盖的自带function
2014/07/16 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
python图形用户接口实例详解
2019/12/16 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
Python 图片处理库exifread详解
2021/02/25 Python
政协常委会议主持词
2015/07/03 职场文书
nginx 添加http_stub_status_module模块
2022/05/25 Servers