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 15 Javascript
基于jQuery的仿flash的广告轮播代码
Nov 04 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
Dec 11 Javascript
HTML上传控件取消选择
Mar 06 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
Jan 18 Javascript
原生Js实现简易烟花爆炸效果的方法
Mar 20 Javascript
学习jQuey中的return false
Dec 18 Javascript
AngularJS上拉加载问题解决方法
May 23 Javascript
jQuery正则验证注册页面经典实例
Jun 10 jQuery
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 Javascript
AngularJs ng-change事件/指令的用法小结
Nov 01 Javascript
JavaScript 与 TypeScript之间的联系
Nov 27 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在Web开发领域的优势
2006/10/09 PHP
一个简单实现多条件查询的例子
2006/10/09 PHP
一个PHP分页类的代码
2011/05/18 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
utf-8编码引起js输出中文乱码的解决办法
2010/06/23 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
深入理解Django的自定义过滤器
2017/10/17 Python
python实现用户管理系统
2018/01/10 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
python excel和yaml文件的读取封装
2021/01/12 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
挪威户外活动服装和装备购物网站:Bergfreunde挪威
2016/10/20 全球购物
工程造价专业求职信
2014/07/17 职场文书
群教个人对照检查材料
2014/08/20 职场文书
五年级作文之成长
2019/09/16 职场文书
如何用python插入独创性声明
2021/03/31 Python
常用的Python代码调试工具总结
2021/06/23 Python
MySQL存储过程及语法详解
2022/08/05 MySQL