本文实例为大家分享了js实现日期联动选择的相关代码,适用于生日的选择,供大家参考,具体内容如下
实现目标:年月日三个select 输入框,以及一个hidden的input,通过js获取input的值,如果有值切是日期格式,年月日select为input中的时间。否则为空。年默认区间段为1900年到当今年份
本人使用了bootstrap,class请参照bootstrap的相关说明
下面是html 内容:
<div class="col-sm-9"> <label class="checkbox-inline"> <select node-type="birthday_year" name="birthday_y" id="birthday_y"> <option value=""></option> </select><span>年</span> </label> <label class="checkbox-inline"> <select node-type="birthday_month" name="birthday_m" id="birthday_m"> <option value=""></option> </select><span>月</span> </label> <label class="checkbox-inline"> <select node-type="birthday_month" name="birthday_d" id="birthday_d"> <option value=""></option> </select><span>日</span> </label> <input type="hidden" name="birth" id="birth" value="2016/2/12"> <label class='checkbox-inline text-warning hidden' id="birth_error_info"><i class='fa fa-warning'>请输入完整生日</i></label> </div>
下面是js 的实现:
//设置生日的转换和获取 var date=new Date(); var year=date.getFullYear(); for(var i=year;i>=1900;i--){ $("#birthday_y").append("<option value="+i+" label="+i+">"+i+"</option>"); } $('#birthday_y').change(function(){ var birth_year=$('#birthday_y').val(); if(birth_year!=""){ var birth_month=$('#birthday_m').val(); if(birth_month!=""){ if(birth_month=="2"){ if((birth_year%4==0 && birth_year%100!=0) || (birth_year%400==0)){ $("#birthday_d").append("<option value=" + 29 + " label=" + 29 + ">" + 29 + "</option>"); }else{ $("#birthday_d option[value='29']").remove(); } } }else { for (var i = 1; i <= 12; i++) { $("#birthday_m").append("<option value=" + i + " label=" + i + ">" + i + "</option>"); } } }else{ $("#birthday_m").html("<option value=''></option>"); $("#birthday_d").html("<option value=''></option>"); } checkBirthday(); }); $('#birthday_m').change(function(){ var birth_year=$('#birthday_y').val(); var birth_month=this.value; var birth_day=$('#birthday_d').val(); if(birth_month!=""){ switch (birth_month){ case "1":case "3":case "5":case "7":case "8":case "10":case "12": if(birth_day=="") { $("#birthday_d").empty(); $("#birthday_d").append("<option value='' ></option>"); for (var i = 1; i <= 31; i++) { $("#birthday_d").append("<option value=" + i + " label=" + i + ">" + i + "</option>"); } }else { switch ($("#birthday_d option:last").attr("value")){ case "28":$("#birthday_d").append("<option value=" + 29 + " >" + 29 + "</option>"); case "29":$("#birthday_d").append("<option value=" + 30 + " >" + 30 + "</option>"); $("#birthday_d").append("<option value=" + 31 + " >" + 31 + "</option>");break; case "30":$("#birthday_d").append("<option value=" + 31 + " >" + 31 + "</option>"); break; default :break; } } break; case "4":case "6":case "9": case "11": if(birth_day=="") { $("#birthday_d").empty(); $("#birthday_d").append("<option value='' ></option>"); for (var i = 1; i <= 30; i++) { $("#birthday_d").append("<option value=" + i + " label=" + i + ">" + i + "</option>"); } }else{ switch ($("#birthday_d option:last").attr("value")){ case "28":$("#birthday_d").append("<option value=" + 29 + " >" + 29 + "</option>"); case "29":$("#birthday_d").append("<option value=" + 30 + " >" + 30 + "</option>"); case "31":$("#birthday_d option[value='31']").remove(); break; default :break; } } break; case "2": if(birth_day==""){ if((birth_year%4==0 && birth_year%100!=0) || (birth_year%400==0)){ for(var i=1;i<=29;i++){ $("#birthday_d").append("<option value="+i+" label="+i+">"+i+"</option>"); } }else{ for(var i=1;i<=28;i++){ $("#birthday_d").append("<option value="+i+" label="+i+">"+i+"</option>"); } }}else{ $("#birthday_d option[value='31']").remove(); $("#birthday_d option[value='30']").remove(); if((birth_year%4==0 && birth_year%100!=0) || (birth_year%400==0)){ }else{ $("#birthday_d option[value='29']").remove(); } } break; default :break; } } checkBirthday(); }); $('#birthday_d').change(function() { checkBirthday(); } ); $('#birthday_d').focus( function(){ if($('#birthday_m').val()==""){ $("#birthday_d").empty(); $("#birthday_d").append("<option value='' ></option>"); } } ); //根据后台提供的数据,填充用户的值 var birth_value=$('#birth').val(); if(birth_value!="") { var date1 = new Date(birth_value); var b_year=date1.getFullYear(); var b_month=date1.getMonth()+1; var b_day=date1.getDate(); $("#birthday_y").find("option[value='"+b_year+"']").attr("selected","selected"); if($('#birthday_y').val()!="") { for (var i = 1; i <= 12; i++) { $("#birthday_m").append("<option value=" + i + " label=" + i + ">" + i + "</option>"); } } $("#birthday_m").find("option[value='"+b_month+"']").attr("selected","selected"); switch (b_month){ case 1:case 3:case 5:case 7:case 8:case 10:case 12: for (var i = 1; i <= 31; i++) { $("#birthday_d").append("<option value=" + i + " label=" + i + ">" + i + "</option>"); } break; case 4:case 6:case 9: case 11: $("#birthday_d").append("<option value='' ></option>"); for (var i = 1; i <= 30; i++) { $("#birthday_d").append("<option value=" + i + " label=" + i + ">" + i + "</option>"); } break; case 2: if((b_year%4==0 && b_year%100!=0) || (b_year%400==0)){ for(var i=1;i<=29;i++){ $("#birthday_d").append("<option value="+i+" label="+i+">"+i+"</option>"); } }else{ for(var i=1;i<=28;i++){ $("#birthday_d").append("<option value="+i+" label="+i+">"+i+"</option>"); } } break; default :break; } $("#birthday_d").find("option[value='"+b_day+"']").attr("selected","selected"); } //验证生日是否输入完整 function checkBirthday(){ var b_year= $('#birthday_y').val(); var b_month=$('#birthday_m').val(); var b_day=$('#birthday_d').val(); if(b_year!=""&&b_month!=""&&b_day!=""){ $('#birth').val(b_year+"-"+b_month+"-"+b_day); $('#birth_error_info').addClass("hidden"); }else{ $('#birth').val(""); $('#birth_error_info').removeClass("hidden"); } }
以上就是本文的全部内容,希望对大家的学习有所帮助。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

记事本++7.3.1
好用且免费的代码编辑器