Limited availability
<input>
ç±»å为 week
çå
ç´ ä¼å建è¾å
¥å段ï¼ä»¥ä¾¿è½»æ¾è¾å
¥å¹´ä»½ä»¥å该年ï¼å³ç¬¬ 1 å¨å°ç¬¬ 52 æ 53 å¨ï¼ç ISO 8601 æææ°
<label for="camp-week">Choose a week in May or June:</label>
<input
type="week"
name="week"
id="camp-week"
min="2018-W18"
max="2018-W26"
required />
label {
display: block;
font:
1rem "Fira Sans",
sans-serif;
}
input,
label {
margin: 0.4rem 0;
}
æ§ä»¶çç¨æ·çé¢å æµè§å¨èå¼ï¼è·¨æµè§å¨çæ¯æç®ååå°éå¶ï¼ç®ååªæ Chrome/Opera å Microsoft Edge æ¯æãå¨ä¸æ¯æçæµè§å¨ä¸ï¼è¯¥æ§ä»¶ä¼ä¼é
é级è³ä¸ <input type="text">
ç¸åçåè½ã
å¨ Chrome/Opera ä¸ï¼week
æ§ä»¶æä¾äºç¨äºå¡«åææåå¹´çææ§½ï¼å¼¹åºå¼æ¥åçé¢ï¼å¯ä»¥æ´ç´è§å°éæ©å®ä»¬ï¼ä»¥åâXâæé®ä»¥æ¸
餿§ä»¶çå¼ã
Edge ç week
æ§å¶æ´å ç²¾ç»ï¼ä½¿ç¨æ»å¨çæ»è½®æå¼ææåå¹´çéæ©å¨ã
ä¸ä¸ªå符串代表æè¾å ¥çææ/å¹´çå¼ãææåç¬¦ä¸²ä¸æè¿°äºæ¤è¾å ¥ç±»å使ç¨çæ¥æåæ¶é´å¼çæ ¼å¼ã
ä½ å¯ä»¥éè¿å¨ value
屿§ä¸å
å«ä¸ä¸ªå¼æ¥ä¸ºè¾å
¥è®¾ç½®é»è®¤å¼ï¼å¦ä¸æç¤ºï¼
<label for="week">What week would you like to start?</label>
<input id="week" type="week" name="week" value="2017-W01" />
è¦æ³¨æçä¸ä»¶äºæ¯ï¼æ¾ç¤ºçæ ¼å¼å¯è½ä¸å®é
ç value
ä¸åï¼åè
å§ç»éç¨ yyyy-Www
æ ¼å¼ãå½å°ä¸è¿°ä¾åä¸çå¼æäº¤ç»æå¡å¨æ¶ï¼æµè§å¨å¯è½ä¼å°å
¶æ¾ç¤ºä¸º Week 01, 2017
ï¼ä½æ¯æäº¤çå¼å§ç»ä¸º week=2017-W01
ã
ä½ è¿å¯ä»¥ä½¿ç¨è¾å
¥å
ç´ ç value
屿§è·å并设置 JavaScript ä¸çå¼ï¼ä¾å¦ï¼
const weekControl = document.querySelector('input[type="week"]');
weekControl.value = "2017-W45";
å
¶ä»å±æ§
é¤äº <input>
å
ç´ å
±æç屿§å¤ï¼ææè¾å
¥è¿æä¾ä»¥ä¸å±æ§ï¼
æ¥å以ä¸å¼é¨åä¸è®¨è®ºçåç¬¦ä¸²æ ¼å¼çææ¶é´ææ°å¹´ä»½åæææ°ã妿è¾å
¥å°è¯¥å
ç´ ä¸ç value
è¶
è¿æ¤å¼ï¼åå
ç´ å°æ æ³éè¿çº¦æéªè¯ã妿 max
屿§çå¼ä¸æ¯ææçææå符串ï¼å该å
ç´ æ²¡ææå¤§å¼ã
æ¤å¼å¿
é¡»å¤§äºæçäº min
屿§æå®çå¹´åææã
ææ©æ¥åçå¹´åæææ°ã妿è¾å
¥å°è¯¥å
ç´ ä¸ç value
å°äºæ¤å¼ï¼å该å
ç´ å°æ æ³éè¿çº¦æéªè¯ã妿 min
屿§çå¼ä¸æ¯ææçææå符串ï¼åè¾å
¥æ²¡ææå°å¼ã
该å¼å¿
é¡»å°äºæçäº max
屿§çå¼ã
å¸å°å±æ§å¼ï¼å¦æåå¨ï¼è¯´ææ¤å段ä¸è½ç±ç¨æ·ç¼è¾ãç¶èï¼å
¶ value
å¼ä»ç¶å¯ä»¥éè¿ JavaScript 代ç ç´æ¥è®¾ç½® HTMLInputElement
ç value
屿§æ¥æ¹åã
夿³¨ï¼ ç±äºåªè¯»å段ä¸å¯ä»¥æ¥æå¼ï¼required
ä¸ä¼å¯¹æå®äº readonly
屿§çåæ®µèµ·ä½ç¨ã
step
屿§æå®äºå¼å¿
须满足çç²åº¦ï¼æè
æ¯ä¸ææè¿°çç¹æ®å¼ any
ãå¼å¿
须满足åºç¡çæ¥è¿å¼ï¼æææã妿æå®äº min
屿§ï¼åç± min
屿§å³å®ï¼å¦åï¼ä½¿ç¨ value
屿§çå¼ï¼å¦æä¸è¿°ä¸¤ä¸ªå¼é½ä¸åå¨ï¼åæä¾éå½çé»è®¤å¼ã
åç¬¦ä¸²å¼ any
æå³çä¸ä½¿ç¨æ¥è¿å¼ï¼ä»»æå¼é½å¯ä»¥æ¥åï¼é¤å
¶ä»å¶çº¦å ç´ å¦ min
æ max
ä¹å¤ï¼ã
夿³¨ï¼ å½ç¨æ·è¾å ¥çæ°æ®ä¸ç¬¦åæ¥è¿é ç½®æ¶ï¼ç¨æ·ä»£çå¯è½ä¼åèäºå ¥å°æè¿çææå¼ï¼å½æä¸¤ä¸ªåæ ·æ¥è¿çé项æ¶ï¼æ´å¾åäºæ£æ¹åçæ°åã
å¯¹äº week
è¾å
¥ï¼step
çå¼ä»¥å¨ä¸ºåä½ï¼æ¯ä¾å å为 604,800,000ï¼å 为åºç¡æ°å¼ä»¥æ¯«ç§ä¸ºåä½ï¼ãstep
çé»è®¤å¼ä¸º 1ï¼è¡¨ç¤º 1 å¨ãé»è®¤çæ¥è¿åºæ°æ¯ -259,200,000ï¼è¿æ¯ 1970 年第ä¸å¨çå¼å§ï¼"1970-W01"
ï¼ã
ç®åï¼å°ä¸æ¸
æ¥å½ä¸ week
è¾å
¥ä¸èµ·ä½¿ç¨æ¶ï¼"any"
çå¼å¯¹ step
æå³çä»ä¹ãç¡®å®è¯¥ä¿¡æ¯åï¼å°å¯¹å
¶è¿è¡æ´æ°ã
ä¹çä¹ä¸ï¼ææè¾å
¥å¬èµ·æ¥å¾æ¹ä¾¿ï¼å 为å®ä»¬æä¾äºç¨äºéæ©ææçç®å UIï¼å¹¶ä¸æ ååäºåéå°æå¡å¨çæ°æ®æ ¼å¼ï¼èä¸ç¨æ·çæµè§å¨æåºå设置æ å
³ã使¯ï¼<input type="week">
åå¨é®é¢ï¼å 为ä¸è½ä¿è¯æææµè§å¨é½æ¯æè¯¥ç¹æ§ã
æä»¬å°ç ç©¶ <input type="week">
çåºæ¬åæ´å¤æçç¨æ³ï¼ç¶åå¨ä»¥åæä¾æå
³ç¼è§£æµè§å¨æ¯æé®é¢ç建议ï¼è¯·åé
å¤çæµè§å¨æ¯æï¼ã
<input type="week">
çæç®åç¨æ³æ¶ååºæ¬ç <input>
å <label>
å
ç´ ç»åï¼å¦ä¸æç¤ºï¼
<form>
<label for="week">What week would you like to start?</label>
<input id="week" type="week" name="week" />
</form>
æ§å¶è¾å
¥æ¡å¤§å°
<input type="week">
䏿¯æè¯¸å¦ size
ç表å大å°å±æ§ãä½ å¿
é¡»ä¾é CSS æ¥ç¡®å®å¤§å°ã
ä½ åºè¯¥è½å¤ä½¿ç¨ step
屿§æ¥æ´æ¹æ¯æ¬¡é墿éåçè·³è½¬å¨æ°ï¼ä½æ¯è¿ä¼¼ä¹å¯¹æ¯ææµè§å¨æ²¡æä»»ä½å½±åã
é»è®¤æ
åµä¸ï¼<input type="week">
ä¸ä¼å¯¹è¾å
¥çå¼åºç¨ä»»ä½éªè¯ãUI å®ç°é常ä¸å
许æå®ä¸æ¯ææçæææå¹´çä»»ä½å
容ï¼å°½ç®¡è¿å¾æç¨ï¼ä½æ¯ä»ç¶å¯ä»¥å¨å段为空çæ
åµä¸æäº¤ï¼å¹¶ä¸ä½ å¯è½å¸æéå¶å¯éæ©ç卿°èå´ã
ä½ å¯ä»¥ä½¿ç¨ min
å max
屿§æ¥éå¶ç¨æ·å¯ä»¥éæ©çææå¨æ°ãå¨ä»¥ä¸ç¤ºä¾ä¸ï¼æä»¬è®¾ç½®äºå¯ä¾éæ©çæå°å¼ Week 01, 2017
åæå¤§å¼ Week 52, 2017
ï¼
<form>
<label for="week">What week would you like to start?</label>
<input id="week" type="week" name="week" min="2017-W01" max="2017-W52" />
<span class="validity"></span>
</form>
è¿æ¯ä¸é¢ç¤ºä¾ä¸ä½¿ç¨ç CSSãå¨è¿éï¼æä»¬å©ç¨ :valid
å :invalid
CSS ä¼ªç±»å±æ§æ ¹æ®å½å弿¯å¦æææ¥è®¾ç½®è¾å
¥çæ ·å¼ãæä»¬å¿
é¡»å°å¾æ æ¾å¨è¾å
¥æè¾¹ç <span>
è䏿¯è¾å
¥æ¬èº«ä¸ï¼å ä¸ºå¨ Chrome ä¸ï¼çæçå
容ä½äºè¡¨åæ§ä»¶å
ï¼æ æ³è®¾ç½®æ ·å¼ææ¾ç¤ºæææ§ã
div {
margin-bottom: 10px;
position: relative;
}
input[type="number"] {
width: 100px;
}
input + span {
padding-right: 30px;
}
input:invalid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
}
input:valid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
}
ç»ææ¯ï¼å¨æ¯æçæµè§å¨ä¸ï¼2017 å¹´ W01 å° W52 ä¹é´åªæå å¨æè¢«è§ä¸ºææï¼å¹¶ä¸å¯ä»¥éæ©ã
使ææå¼æä¸ºå¿ éå¼å¦å¤ï¼ä½ å¯ä»¥ä½¿ç¨ required
屿§æ¥å¼ºå¶å¡«åææãå æ¤ï¼å¦æä½ å°è¯æäº¤ç©ºç½çææå段ï¼åæ¯æçæµè§å¨å°æ¾ç¤ºé误ã
让æä»¬çä¸ä¸ªä¾åï¼å¨è¿éï¼æä»¬è®¾ç½®äºæå°åæå¤§ææï¼å¹¶ä»¤è¯¥åæ®µå¿ å¡«ï¼
<form>
<div>
<label for="week">What week would you like to start?</label>
<input
id="week"
type="week"
name="week"
min="2017-W01"
max="2017-W52"
required />
<span class="validity"></span>
</div>
<div>
<input type="submit" value="Submit form" />
</div>
</form>
å¦æä½ å°è¯æäº¤ä¸å¸¦ä»»ä½å¼ç表åï¼æµè§å¨å°æ¾ç¤ºé误ãç°å¨å°è¯ä½¿ç¨ç¤ºä¾ï¼
è¿æ¯ä½¿ç¨ä¸æ¯æè¯¥æ§ä»¶çæµè§å¨çå±å¹æªå¾ï¼
è¦åï¼ HTML 表åéªè¯ä¸è½ä»£æ¿èæ¬æ¥ç¡®ä¿è¾å ¥çæ°æ®éç¨æ£ç¡®çæ ¼å¼ãå¯¹äºæäººæ¥è¯´ï¼å¯¹ HTML è¿è¡è°æ´ä»¥ä½¿å ¶ç»è¿éªè¯æå®å ¨å é¤éªè¯å¤ªå®¹æäºï¼çè³ä¹å¯ä»¥å®å ¨ç»å¼ HTML å¹¶å°æ°æ®ç´æ¥æäº¤å°æå¡å¨ã妿æå¡å¨ç«¯ä»£ç æ æ³éªè¯å ¶æ¥æ¶å°çæ°æ®ï¼åå¨æäº¤æ ¼å¼ä¸æ£ç¡®çï¼æå¤ªå¤§ï¼ç±»åé误â¦â¦ï¼çæ°æ®æ¶ï¼ç¾é¾å¯è½ä¼åçã
å¤çæµè§å¨æ¯æå¦ä¸æè¿°ï¼ç°å¨ä½¿ç¨ææè¾å ¥ç主è¦é®é¢æ¯æµè§å¨æ¯æï¼Safari å Firefox 卿¡é¢ä¸ä¸æ¯æå®ï¼èæ§çæ¬ç IE 䏿¯æå®ã
è¯¸å¦ Android å iOS ä¹ç±»çç§»å¨å¹³å°ç¡®å®å¾å¥½å°å©ç¨äºè¿ç§è¾å
¥ç±»åï¼æä¾äºä¸é¨ç UI æ§ä»¶ï¼ä½¿å¨è§¦æ¸å±ç¯å¢ä¸éæ©å¼åå¾é常容æãä¾å¦ï¼Android ç Chrome ä¸ç week
éæ©å¨å¦ä¸æç¤ºï¼
䏿¯æè¯¥æ§ä»¶çæµè§å¨ä¼ä¼é å°éçº§ä¸ºææ¬è¾å ¥ï¼ä½è¿å¨ç¨æ·çé¢çä¸è´æ§ï¼ææä¾çæ§ä»¶å°ææä¸åï¼åæ°æ®å¤çæ¹é¢é½äº§çäºé®é¢ã
第äºä¸ªé®é¢æ¯æ´ä¸¥éçãå¦åæè¿°ï¼å¨è¾å
¥ä¸ä¸ª week
çæ
åµä¸ï¼å®é
å¼å§ç»ä¼å½ä¸å为 yyyy-Www
æ ¼å¼ã彿µè§å¨åéè³éç¨ææ¬è¾å
¥æ¶ï¼æ²¡æä»ä¹å¯ä»¥æå¯¼ç¨æ·æ£ç¡®æ ¼å¼åè¾å
¥çæ ¼å¼ï¼è¿è¯å®æ¯ä¸ç´è§çï¼ã人们å¯ä»¥éè¿å¤ç§æ¹å¼æ¥åææå¼ãä¾å¦ï¼
Week 1 2017
Jan 2-8 2017
2017-W01
ç®åï¼ä»¥è·¨æµè§å¨æ¹å¼å¤çææ/å¹´çæä½³æ¹æ³æ¯è®©ç¨æ·å¨åç¬çæ§ä»¶ä¸è¾å
¥æææ°å年份ï¼ç¹å«æ¯å¨ <select>
å
ç´ ä¸ï¼åè§ä¸é¢ç示ä¾ï¼ï¼æä½¿ç¨ JavaScript åºï¼ä¾å¦ jQuery æ¥æéæ©å¨ï¼ã
卿¤ç¤ºä¾ä¸ï¼æä»¬å建äºä¸¤ç»ç¨äºéæ©ææç UI å
ç´ ï¼ä½¿ç¨ <input type="week">
å建çåçéæ©å¨ï¼ä»¥åä¸ºä¸æ¯æ week
è¾å
¥ç±»åçæ§çæµè§å¨åå¤ç两个ç¨äºéæ©ææ/å¹´ç <select>
å
ç´ ã
HTML çèµ·æ¥åè¿æ ·ï¼
<form>
<div class="nativeWeekPicker">
<label for="week">What week would you like to start?</label>
<input
id="week"
type="week"
name="week"
min="2017-W01"
max="2018-W52"
required />
<span class="validity"></span>
</div>
<p class="fallbackLabel">What week would you like to start?</p>
<div class="fallbackWeekPicker">
<div>
<span>
<label for="week">Week:</label>
<select id="fallbackWeek" name="week"></select>
</span>
<span>
<label for="year">Year:</label>
<select id="year" name="year">
<option value="2017" selected>2017</option>
<option value="2018">2018</option>
</select>
</span>
</div>
</div>
</form>
ææå¼ç±ä¸é¢ç JavaScript 代ç 卿çæã
div {
margin-bottom: 10px;
position: relative;
}
input[type="number"] {
width: 100px;
}
input + span {
padding-right: 30px;
}
input:invalid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
}
input:valid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
}
该代ç ä¸å¯è½æè¶£çå¦ä¸é¨åæ¯ç¹æ§æ£æµä»£ç ãè¦æ£æµæµè§å¨æ¯å¦æ¯æ <input type="week">
ï¼æä»¬å建ä¸ä¸ªæ°ç <input>
å
ç´ ï¼å°è¯å°å
¶ type
设置为 week
ï¼ç¶åç«å³æ£æ¥å
¶ type
å¼ã䏿¯æçæµè§å¨å°è¿å text
ï¼å 为 week
ç±»åå°åé为 text
ç±»åã妿䏿¯æï¼<input type="week">
æä»¬å°éèåçéæ©å¨å¹¶æ¾ç¤ºåå¤éæ©å¨ UIï¼<select>
å
ç´ ï¼ã
// è·å UI å
ç´
const nativePicker = document.querySelector(".nativeWeekPicker");
const fallbackPicker = document.querySelector(".fallbackWeekPicker");
const fallbackLabel = document.querySelector(".fallbackLabel");
const yearSelect = document.querySelector("#year");
const weekSelect = document.querySelector("#fallbackWeek");
// æåï¼éèåéå
ç´
fallbackPicker.style.display = "none";
fallbackLabel.style.display = "none";
// æµè¯ä¸ä¸ªæ°ç date è¾å
¥æ¡æ¯å¦ä¼åéè³ text è¾å
¥æ¡
const test = document.createElement("input");
try {
test.type = "week";
} catch (e) {
console.log(e.description);
}
// 妿åéäºï¼è¿è¡ if 代ç åä¸ç代ç
if (test.type === "text") {
// éèåçéæ©å¨ï¼æ¾ç¤ºåéå
ç´
nativePicker.style.display = "none";
fallbackPicker.style.display = "block";
fallbackLabel.style.display = "block";
// å¨æçææææ°
populateWeeks();
}
function populateWeeks() {
// çæå«æ 52 ä¸ªéæ©çæææ°
for (let i = 1; i <= 52; i++) {
const option = document.createElement("option");
option.textContent = i < 10 ? `0${i}` : i;
weekSelect.appendChild(option);
}
}
夿³¨ï¼ 请记ä½ï¼æäºå¹´ä»½æ 53 å¨ï¼è¯·åé æ¯å¹´ç卿°)ï¼å¨å¼åç产åºç¨ç¨åºæ¶ï¼éè¦èèå°è¿ä¸ç¹ã
è§è æµè§å¨å ¼å®¹æ§ åè§RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4