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 相关文章推荐
用javascript实现给图片加链接
Aug 15 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
Sep 10 Javascript
JS实现一个按钮的方法
Feb 05 Javascript
JS运动基础框架实例分析
Mar 03 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
js动态添加的DIV中的onclick事件简单实例
Jul 25 Javascript
vue.js 获取当前自定义属性值
Jun 01 Javascript
swiper动态改变滑动内容的实现方法
Jan 17 Javascript
JavaScript中常见内置函数用法示例
May 14 Javascript
vscode中vue-cli项目es-lint的配置方法
Jul 30 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
Nov 21 Javascript
优雅地使用loading(推荐)
Apr 20 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
php基础知识:控制结构
2006/12/13 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
php建立Ftp连接的方法
2015/03/07 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
python控制台显示时钟的示例
2014/02/24 Python
Python获取邮件地址的方法
2015/07/10 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
使用python实现滑动验证码功能
2019/08/05 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
python装饰器的特性原理详解
2019/12/25 Python
详解Python中的文件操作
2021/01/14 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
css3学习心得分享
2013/08/19 HTML / CSS
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
航空大学应届生求职信
2013/11/10 职场文书
公务员诚信承诺书
2014/05/26 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书