全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

基于angular实现三级联动的生日插件

写了一个生日联动插件具体的效果是这样的:

具体的数据

我取得数据是今年的数据,如果是想要做三级联动的日期插件,改一下时间就好了

var app=angular.module("dataPicker",[])

app.factory('dataPicker', ['$http', '$q', function ($http, $q) {
  return {
   query: function () {
    var lengthYear=100;
    var dataPicker={
     month:[],
     year:[],
     day:[]
    };
    var data = new Date();
    var nowyear = data.getFullYear();
    for(var i=nowyear,j=0; i>nowyear-lengthYear;i--,j++){
     dataPicker.year[j]=i;
    }
    for(var i=0;i<=11;i++){
     if(i<9){
      dataPicker.month[i]='0'+(i+1);
     }else{
      dataPicker.month[i]=String(i+1);
     }
    }
    return dataPicker;
   }
  }
 }])

directive插件的主要内容

app.directive('selectDatepicker', function ($http,dataPicker) {
  return {
   restrict: 'EAMC',
   replace: false,
   scope: {
    birthday: '=birthday'
   },
   transclude: true,
   template: '<span>生日</span>'+
    '<select class="sel_year" ng-model="birY" ng-change="changeYear()"><option ng-repeat="x in yearAll">{{x}}</option></select>'+
    '<select class="sel_month" ng-model="birM" ng-change="changeMonth()" ng-disabled="birY==\'\'"><option ng-repeat="x in MonthAll">{{x}}</option> </select>'+
    '<select class="sel_day" ng-model="birD" ng-disabled="birM==\'\'" ng-change="changeDay()"><option ng-repeat="x in DayAll">{{x}}</option></select>',
   link: function (scope, element){
    var arr=[];
    scope.birthday=scope.birthday=='0000-00-00'?"":scope.birthday
    var shuju=dataPicker.query()
    scope.yearAll=shuju.year;
    scope.MonthAll=shuju.month;
    if(scope.birthday){
     scope.birY=scope.birthday.birthday.split('-')[0];
     scope.birM=String(scope.birthday.birthday.split('-')[1])
    }else{
     scope.birY="";
     scope.birM="";
    }
    scope.getDaysInOneMonth=function(year, month){
     var month1 = Number(month);
     month1=parseInt(month1,10)
     var d= new Date(Number(year),month1,0);
     return d.getDate();
    }
    scope.getDayArr=function(day){
     shuju.day=[];
     for(var i=0; i<day;i++){
      if(i<9){
       shuju.day[i]='0'+(i+1)
      }else{
       shuju.day[i]=String((i+1));
      }
     }
    }
    if(scope.birthday){
     var day=scope.getDaysInOneMonth(scope.birthday.birthday.split('-')[0],scope.birthday.birthday.split('-')[1]);
     scope.getDayArr(day)
     scope.DayAll=shuju.day;
     scope.birD=scope.birthday.birthday.split('-')[2]
    }
    scope.changeYear=function(){
     scope.birD="";
     scope.birM="";
    }
    scope.changeMonth=function(){
     var day=scope.getDaysInOneMonth(scope.birY,scope.birM);
     console.log(day)
     scope.getDayArr(day);
     scope.DayAll=shuju.day;
     scope.birD="";
    }
    scope.changeDay=function(){
     scope.returnDate();
    }
    scope.returnDate=function(){
     if(!scope.birD||!scope.birY||!scope.birM){
      scope.birthday.returnValue="";
     }else{
      arr[0]=scope.birY;
      arr[1]=scope.birM;
      arr[2]=scope.birD;
      scope.birthday.returnValue=arr.join("-");
     }
    }
   }
  }
 })
});

 html

<div select-datepicker birthday="birthday"> 

js 传入的数据

 $scope.birthday={
   birthday:1993-01-20,
   returnValue:'',
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# angular三级联动插件  # angular生日插件  # angular三级联动日期插件  # AngularJS实现的select二级联动下拉菜单功能示例  # Angularjs实现下拉框联动的示例代码  # Angularjs自定义指令实现三级联动 选择地理位置  # 基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码  # 实例详解AngularJS实现无限级联动菜单  # AngularJS实现的省市二级联动功能示例【可对选项实现增删】  # 是这样  # 写了  # 主要内容  # 大家多多  # 就好了  # gt  # getFullYear  # lt  # month  # day  # year  # data  # nowyear  # Date  # String  # scope  # false  # birthday  # true  # transclude 


相关文章: 制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  如何在万网自助建站中设置域名及备案?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  宝塔面板如何快速创建新站点?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何用PHP快速搭建高效网站?分步指南  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何通过IIS搭建网站并配置访问权限?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  盘锦网站制作公司,盘锦大洼有多少5G网站?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何选择高效响应式自助建站源码系统?  ,南京靠谱的征婚网站?  建站主机与虚拟主机有何区别?如何选择最优方案?  南宁网站建设制作定制,南宁网站建设可以定制吗?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  金*站制作公司有哪些,金华教育集团官网?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  javascript中的try catch异常捕获机制用法分析  如何用好域名打造高点击率的自主建站?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  制作营销网站公司,淘特是干什么用的?  电商网站制作公司有哪些,1688网是什么意思?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  济南专业网站制作公司,济南信息工程学校怎么样?  Swift中swift中的switch 语句  建站主机无法访问?如何排查域名与服务器问题  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  html制作网站的步骤有哪些,iapp如何添加网页?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何用已有域名快速搭建网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  教学网站制作软件,学习*后期制作的网站有哪些?  视频网站制作教程,怎么样制作优酷网的小视频?  网页设计网站制作软件,microsoft office哪个可以创建网页?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何基于云服务器快速搭建网站及云盘系统?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  利用JavaScript实现拖拽改变元素大小  c# 服务器GC和工作站GC的区别和设置 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。