js实现年月日表单三级联动


Posted in Javascript onApril 17, 2020

用Html实现人人网注册界面 ,Js实现生日栏表单三级联动

1. 效果

js实现年月日表单三级联动

2.Html代码部分

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>人人网日期表单联动</title>
 <style>
 select
 {
  font:20px/40px '宋体';
 }
 option {width: 100px;}
 </style>
</head>
<body>
<form method = "get" onchange="changeMonth()">
 <b><h3 align="center">
 免费开通人人网账号  
 </h3></b>

 <table align="center" height = "500">

 <tr ><td>注册邮箱: </td><td> <input type = "text" name = "name"/></td></tr>
 <tr><td> </td><td>你还可以使用 <a href="https://www.baidu.com">账号</a> 
  注册或者 <a href="https://www.baidu.com">手机号</a> 注册</td></tr>

 <tr><td>创建密码: </td><td><input type = "password" name = "password"/></td></tr>

 <tr><td>真实姓名: </td><td><input type = "password" name = "name"/></td>

 <tr><td align="right">性别: </td><td>男<input type = "radio" value = "male" name = "gender"/>
  女<input type = "radio" value = "female" name = "gender"/></td></tr>

 <tr><td align="right">生日: </td><td>

 <div id="box">
  <select name="sel1" id="sel1">
  <option value="year">年</option>
  </select> 
  <select name="sel2" id="sel2">
  <option value="month">月</option>
  </select> 
  <select name="sel3" id="sel3">
  <option value="day">日</option>
  </select>
  <span id="result"></span>
 </div></td></tr>


 <tr><td align="right">我现在: </td>
  <td><select name = "subject">
  <option value = "xu">正在上学</option>
  <option value = "cz">工作</option>
  <option value = "gz">赋闲</option>
  <option value = "bk">经商</option>
  </select></td></tr>

 <tr><td></td><td>![](verycode.gif) <a href="https://www.baidu.com">看不清换一张?</a>
 </td></tr>
 <tr><td>验证码:</td><td><input type = "password" name = "yanzheng"/></td></tr>
 <tr><td></td><td><a href="https://www.baidu.com"> ![](btn_reg.gif)</a></td></tr>
 </table>
</form>
</body>
</html>

3.JavaScript代码

<script>
  //生成日期
  function creatDate()
  {
  //生成1900年-2100年
  for(var i = 2016; i >= 1950; i--)
  {
   //创建select项
   var option = document.createElement('option');
   option.setAttribute('value',i);
   option.innerHTML = i;
   sel1.appendChild(option);
  }
  //生成1月-12月
  for(var i = 1; i <=12; i++){
   var option1 = document.createElement('option');
   option1.setAttribute('value',i);
   option1.innerHTML = i;
   sel2.appendChild(option1);
  }
  //生成1日—31日
  for(var i = 1; i <=31; i++){
   var option2 = document.createElement('option');
   option2.setAttribute('value',i);
   option2.innerHTML = i;
   sel3.appendChild(option2);
  }
  }
  creatDate();
  //保存某年某月的天数
  var days;

  //年份点击 绑定函数
  sel1.onclick = function()
  {
  //月份显示默认值
  sel2.options[0].selected = true;
  //天数显示默认值
  sel3.options[0].selected = true;
  }
  //月份点击 绑定函数
  sel2.onclick = function()
  {
  //天数显示默认值
  sel3.options[0].selected = true;
  //计算天数的显示范围
  //如果是2月
  if(sel2.value == 2)
  {
   //判断闰年
   if((sel1.value % 4 === 0 && sel1.value % 100 !== 0) || sel1.value % 400 === 0)
   {
   days = 29;
   }
   else
   {
   days = 28;
   }
   //判断小月
  }else if(sel2.value == 4 || sel2.value == 6 ||sel2.value == 9 ||sel2.value == 11){
   days = 30;
  }else{
   days = 31;
  }

  //增加或删除天数
  //如果是28天,则删除29、30、31天(即使他们不存在也不报错)
  if(days == 28){
   sel3.remove(31);
   sel3.remove(30);
   sel3.remove(29);
  }
  //如果是29天
  if(days == 29){
   sel3.remove(31);
   sel3.remove(30);
   //如果第29天不存在,则添加第29天
   if(!sel3.options[29]){
   sel3.add(new Option('29','29'),null)
   }
  }
  //如果是30天
  if(days == 30){
   sel3.remove(31);
   //如果第29天不存在,则添加第29天
   if(!sel3.options[29]){
   sel3.add(new Option('29','29'),null)
   }
   //如果第30天不存在,则添加第30天
   if(!sel3.options[30]){
   sel3.add(new Option('30','30'),null)
   }
  }
  //如果是31天
  if(days == 31){
   //如果第29天不存在,则添加第29天
   if(!sel3.options[29])
   {
   sel3.add(new Option('29','29'),null)
   }
   //如果第30天不存在,则添加第30天
   if(!sel3.options[30])
   {
   sel3.add(new Option('30','30'),null)
   }
   //如果第31天不存在,则添加第31天
   if(!sel3.options[31])
   {
   sel3.add(new Option('31','31'),null)
   }
  }
  }

  //结果显示 设置好日期时间后 弹窗通知
  box.onclick = function()
  {
  //当年、月、日都已经为设置值时
  if(sel1.value !='year' && sel2.value != 'month' && sel3.value !='day')
  {
   alert("日期时间已经设定好");
  }
  }

 </script>

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

Javascript 相关文章推荐
jQuery 使用手册(六)
Sep 23 Javascript
javascript基础知识大集锦(二) 推荐收藏
Jan 13 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
seajs学习教程之基础篇
Oct 20 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 Javascript
angular使用post、get向后台传参的问题实例
May 27 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
Nov 05 Javascript
如何用JavaScript实现功能齐全的单链表详解
Feb 11 Javascript
浅谈VUE中演示v-for为什么要加key
Jan 16 Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 Javascript
微信小程序的引导页实现代码
Jun 24 Javascript
JavaScript实现烟花绽放动画效果
Aug 04 Javascript
js实现3D图片展示效果
Mar 09 #Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 #Javascript
less简单入门(CSS 预处理语言)
Mar 08 #Javascript
完美实现js选项卡切换效果(二)
Mar 08 #Javascript
微信小程序中用WebStorm使用LESS
Mar 08 #Javascript
Vue常用指令V-model用法
Mar 08 #Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 #Javascript
You might like
咖啡与牛奶
2021/03/03 冲泡冲煮
php中防止伪造跨站请求的小招式
2011/09/02 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
python利用beautifulSoup实现爬虫
2014/09/29 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
python实现ID3决策树算法
2017/12/20 Python
python版大富翁源代码分享
2018/11/19 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
大学生个人简历自我评价
2013/11/16 职场文书
一份报关员的职业规划范文
2014/01/08 职场文书
活动总结格式范文
2014/04/26 职场文书
劳模先进事迹材料
2014/12/24 职场文书
2015年幼师工作总结
2015/04/28 职场文书
五年级语文教学反思
2016/03/03 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书