javascript 구현 날짜 3 단계 연동 드 롭 다운 상자 선택 메뉴
3872 단어 js날짜.드 롭 다운 프레임
생일 표시 줄 의[년]또는[월]을 편집 하면 이전에 저 장 된 구체 적 인[일]은 표시 되 지 않 습 니 다.제품 은 어떤 데 이 터 를 편집 하 든 다른 데 이 터 는 변 하지 않 는 다 고 합 니 다.
그리고 코드 를 스스로 고 쳤 습 니 다.
<html>
<head>
<meta charset="UTF-8"/>
<meta name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
<title>JS </title>
</head>
<body>
<form name="reg_testdate">
<select name="YYYY" onChange="YYYYDD(this.value)">
<option value=""> </option>
</select>
<select name="MM" onChange="MMDD(this.value)">
<option value=""> </option>
</select>
<select name="DD" onChange="DDD(this.value)">
<option value=""> </option>
</select>
</form>
<script language="JavaScript">
var changeDD = 1;//->
function YYYYMMDDstart() {
MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
//
var y = new Date().getFullYear();
for (var i = (y - 47); i < (y + 21); i++) // , 30 , 30
document.reg_testdate.YYYY.options.add(new Option(" " + i + " ", i));
//
for (var i = 1; i < 13; i++)
document.reg_testdate.MM.options.add(new Option(" " + i + " ", i));
document.reg_testdate.YYYY.value = y;
document.reg_testdate.MM.value = new Date().getMonth() + 1;
var n = MonHead[new Date().getMonth()];
if (new Date().getMonth() == 1 && IsPinYear(YYYYvalue)) n++;
writeDay(n); //
//-> ,
// document.reg_testdate.DD.value = new Date().getDate();
}
if (document.attachEvent)
window.attachEvent("onload", YYYYMMDDstart);
else
window.addEventListener('load', YYYYMMDDstart, false);
function YYYYDD(str) // ( )
{
var MMvalue = document.reg_testdate.MM.options[document.reg_testdate.MM.selectedIndex].value;
if (MMvalue == "") {
// var e = document.reg_testdate.DD;
optionsClear(e);
return;
}
var n = MonHead[MMvalue - 1];
if (MMvalue == 2 && IsPinYear(str)) n++;
writeDay(n)
}
function MMDD(str) //
{
var YYYYvalue = document.reg_testdate.YYYY.options[document.reg_testdate.YYYY.selectedIndex].value;
if (YYYYvalue == "") {
var e = document.reg_testdate.DD;
optionsClear(e);
return;
}
var n = MonHead[str - 1];
if (str == 2 && IsPinYear(YYYYvalue)) n++;
writeDay(n)
}
function writeDay(n) //
{
var e = document.reg_testdate.DD;
optionsClear(e);
for (var i = 1; i < (n + 1); i++)
{
e.options.add(new Option(" " + i + " ", i));
if(i == changeDD){
e.options[i].selected = true; //->
}
}
console.log(i);
console.log(changeDD);
}
function IsPinYear(year) //
{
return (0 == year % 4 && (year % 100 != 0 || year % 400 == 0));
}
function optionsClear(e) {
e.options.length = 1;
}
//->
function DDD(str){
changeDD = str;
}
</script>
</body>
</html>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.