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 相关文章推荐
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
Jun 20 Javascript
javascript实现俄罗斯方块游戏的思路和方法
Apr 27 Javascript
学习Bootstrap组件之下拉菜单
Jul 28 Javascript
javascript封装简单实现方法
Aug 11 Javascript
js中遍历Map对象的方法
Jul 27 Javascript
AngularJs  Using $location详解及示例代码
Sep 02 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
Dec 08 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
Apr 12 Javascript
JS设置手机验证码60s等待实现代码
Jun 14 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
May 17 Javascript
微信公众号网页分享功能开发的示例代码
May 27 Javascript
Vue 组件注册全解析
Dec 17 Vue.js
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
多重?l件?合查?(一)
2006/10/09 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
tensorflow多维张量计算实例
2020/02/11 Python
adidas美国官网:adidas US
2016/09/21 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
护理专业个人求职简历的自我评价
2013/10/13 职场文书
班组安全员工作职责
2014/02/01 职场文书
校园安全教育广播稿
2014/02/17 职场文书
骨干教师个人总结
2015/02/11 职场文书
幼师辞职信范文
2015/02/27 职场文书
试用期辞职信范文
2015/03/02 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
python删除csv文件的行列
2021/04/06 Python