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的map与get方法详解
Nov 04 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
浅析Node.js 中 Stream API 的使用
Oct 23 Javascript
详解Angular中$cacheFactory缓存的使用
Aug 19 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
Feb 17 Javascript
js微信应用场景之微信音乐相册案例分享
Aug 11 Javascript
vue实现留言板todolist功能
Aug 16 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
Mar 01 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 10 Javascript
Vue脚手架的简单使用实例
Jul 10 Javascript
使用zrender.js绘制体温单效果
Oct 31 Javascript
在VUE style中使用data中的变量的方法
Jun 19 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判断类是否存在函数class_exists用法分析
2014/11/14 PHP
一段实用的php验证码函数
2016/05/19 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
2019/09/06 Javascript
js实现简单页面全屏
2019/09/17 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
Python实现抓取网页并且解析的实例
2014/09/20 Python
在Python中定义和使用抽象类的方法
2016/06/30 Python
python的re正则表达式实例代码
2018/01/24 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
Python的Lambda函数用法详解
2019/09/03 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
幼儿如何来做好自我评价
2013/11/05 职场文书
大学四年规划书范文
2013/12/27 职场文书
入党自我评价范文
2014/02/02 职场文书
请假条标准格式规范
2014/04/10 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis