JSFiddle - React, Tailwind, and code Playground
TEST
by RightHua
HTML
<h2 class="has-text-align-center">不易受孕期(安全期)/排卵期計算器(月曆)</h2>
<div class="container">
<p style="background-color:#c13816;color:#ffffff"/>
<div class="row" align="center">
<form name="checkdate" method="post" onsubmit="javascript:showCalendar();" class="form-horizontal col-sm-12">
<div class="form-group form-group-lg">
<label class="col-xs-6 col-sm-6 col-md-3 control-label" ><h4>平均月經間隔(天)</h4></label>
<div class="col-xs-6 col-sm-3">
<select class="form-control" type="text" name="averagecyc" id="averagecyc" placeholder="(天)" pattern="\d*">
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
</select>
</div>
</div>
<div class="form-group form-group-lg">
<label class="col-xs-6 col-sm-6 col-md-3 control-label"><h4>每次經期平均天數</h4></label>
<div class="col-xs-6 col-sm-3">
<select class="form-control" name="averagemenses" id="averagemenses" placeholder="(天)" pattern="\d*">
<option value="3">3</option>
<option value="4">4</option>
<option value="5" selected>5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div>
</div>
<div class="form-group form-group-lg">
<label class="col-sm-6 col-md-3 control-label" ><h4>上次月經開始時間</h4></label>
<div class="col-sm-6">
<input class="form-control" type="date" name="MCday" id="MCday" placeholder="" value="2021-2-30" onchange='javascript:showCalendar();return false;'>
</div><br>
<p align="center"><input type="button" class="button alert is-shade is-large" value="計算/重新計算" onclick="javascript:showCalendar(this.value);return false;"></p>
<h4><font...
CSS
.box3{width:100%;}
.box3 a{text-decoration:none;color:#ffffff; text-align:center; display:block;padding:-10px;}
.box3 a.green{background:#D7FFEE;}.box3 a.green:hover{background:#50C878;}
.box3 a.purple{}.box3 a.purple:hover{background:#DAB1D5;}
.box3 a.red{background:#FFD2D2;}.box3 a.red:hover{background:#FF5151;}
JavaScript
$(document).ready(function (){
initCalendar();
});
var N=new Date();
Form=document.checkdate;
function initCalendar(){
Form=document.checkdate;
Form.averagecyc.value=28;
Form.averagemenses.value=5;
//Form.Year.value=N.getFullYear();
//Form.Month.value=N.getMonth()+ 1;
//Form.Day.value=N.getDate();
getCalendar(1,1);
document.all.Calendar1.outerHTML=calendarStr;
getCalendar(2,1);
document.all.Calendar2.outerHTML=calendarStr;
}
function resetInput(){Form.reset();}
function getMonthDate(year,month){
//alert(month);
var monthDays=new Array(12);
monthDays[0]=31;monthDays[1]=28;monthDays[2]=31;monthDays[3]=30;
monthDays[4]=31;monthDays[5]=30;monthDays[6]=31;monthDays[7]=31;
monthDays[8]=30;monthDays[9]=31;monthDays[10]=30;monthDays[11]=31;
if(((year%4==0)&&(year%100!=0))||(year%400==0)){
monthDays[1]=29;
}
return monthDays[month];
}
function showMsg(event,msg,id){
var box_name= "msgBox"+id;
//alert(box_name);
if(document.getElementById(box_name)){
msgBox=document.getElementById(box_name);
msgBox.innerHTML=msg;
msgBox.style.display="block";
msgBox.style.left=event.clientX;
msgBox.style.top=event.clientY+ 20;
} else {
var msgBox=document.createElement("div");
msgBox.setAttribute("id",box_name);
msgBox.style.display="block";
msgBox.innerHTML=msg;document.body.appendChild(msgBox);
msgBox.style.left=event.clientX+ document.body.scrollLeft- 20;
msgBox.style.top=event.clientY+ document.body.scrollTop+ 20;
}
}
function hideMsg(){
document.getElementById("msgBox1").style.display="none";
document.getElementById("msgBox2").style.display="none";
}
function getCalendar(calendarID,flag){
calendarStr="";
//var currYear=Form.Year.value;
//var currMonth=parseInt(Form.Month.value)+ calendarID- 1;
var d = new Date(Form.MCday.value);
//var currYear=Form.Year.value;
//var currMonth=parseInt(Form.Month.value)+ calendarID- 1;
var currYear=d.getFullYear();
var...