Baseline Widely available
number
ç±»åç <input>
å
ç´ ç¨äºè®©ç¨æ·è¾å
¥ä¸ä¸ªæ°åï¼å
¶å
æ¬å
ç½®éªè¯ä»¥æç»éæ°åè¾å
¥ã
æµè§å¨å¯è½ä¼éæ©æä¾æ¥è¿ç®å¤´ï¼è®©ç¨æ·å¯ä»¥ä½¿ç¨é¼ æ å¢å ååå°è¾å ¥çå¼ï¼æè åªéç¨æå°æ²å»å³å¯ã
å°è¯ä¸ä¸<label for="tentacles">Number of tentacles (10-100):</label>
<input type="number" id="tentacles" name="tentacles" min="10" max="100" />
label {
display: block;
font:
1rem "Fira Sans",
sans-serif;
}
input,
label {
margin: 0.4rem 0;
}
䏿¯æ number
ç±»åçæµè§å¨ä¼åé为æ åç text
è¾å
¥æ¡ã
å¡«åå°è¾å
¥æ¡ä¸çæ°å¼æåç Number
表示ãä½ å¯ä»¥éè¿å¨ value
屿§ä¸å
å«ä¸ä¸ªæ°åæ¥è®¾ç½®è¾å
¥æ¡çé»è®¤å¼ï¼å¦ä¸æç¤ºï¼
<input id="number" type="number" value="42" />
éå 屿§
é¤äº <input>
å
ç´ å
±æç屿§å¤ï¼æ°åè¾å
¥è¿æä¾ä»¥ä¸å±æ§ã
list
list 屿§ç弿¯ä½äºåä¸ææ¡£ä¸ç <datalist>
å
ç´ ç id
ã<datalist>
æä¾äºå¯è¾å
¥å°å½åè¾å
¥æ¡çä¸ä¸ªé¢å®ä¹çå¼å表ãå表ä¸ä»»ä½ä¸ type
ä¸å
¼å®¹çå¼é½ä¸å
æ¬å¨å»ºè®®é项ä¸ãææä¾ç弿¯å»ºè®®ï¼ä¸æ¯è¦æ±ï¼ç¨æ·å¯ä»¥ä»è¿ä¸ªé¢å®ä¹çå表ä¸éæ©ï¼æè
æä¾ä¸åçå¼ã
max
å
许å¼èå´å
çæå¤§å¼ã妿è¾å
¥å°å
ç´ ä¸ç value
è¶
è¿æ¤å¼ï¼åå
ç´ å°æ æ³éè¿çº¦æéªè¯ã妿 max
屿§çå¼ä¸æ¯æ°åï¼åå
ç´ æ²¡ææå¤§å¼ã
æ¤å¼å¿
é¡»å¤§äºæçäº min
屿§çå¼ã
min
å
许å¼èå´å
çæå°å¼ã妿å
ç´ ç value
å°äºæ¤å¼ï¼å该å
ç´ å°æ æ³éè¿çº¦æéªè¯ãå¦æä¸º min
æå®çå¼ä¸æ¯æææ°åï¼åè¾å
¥æ²¡ææå°å¼ã
该å¼å¿
é¡»å°äºæçäº max
屿§çå¼ã
placeholder
placeholder
屿§æ¯ä¸ä¸ªå符串ï¼å¯åç¨æ·æä¾æå
³è¯¥å段ä¸éè¦ä»ä¹æ ·çä¿¡æ¯çç®çæç¤ºãå®åºè¯¥æ¯è¯´æé¢æçæ°æ®ç±»åçåè¯æçè¯ï¼è䏿¯è¯´ææ§æ¶æ¯ãææ¬ä¸ä¸å¾å
å«åè½¦ç¬¦ææ¢è¡ç¬¦ã
妿æ§ä»¶çå å®¹å ·ææ¹åï¼LTR æ RTLï¼ï¼ä½éè¦ä»¥ç¸åçæ¹åæ¾ç¤ºå ä½ç¬¦ï¼åå¯ä»¥ä½¿ç¨ Unicode ååç®æ³æ¥æ ¼å¼åå符ï¼ä»èè¦çåæå ä½ç¬¦çæ¹åï¼è¯·åè§å¦ä½é对ååææ¬ä½¿ç¨ Unicode æ§å¶ç¬¦è·åæ´å¤ä¿¡æ¯ã
夿³¨ï¼ 请尽å¯è½é¿å
ä½¿ç¨ placeholder
屿§ï¼å®å¨è¯ä¹ä¸æ²¡æå
¶ä»è§£é表åçæ¹å¼æç¨ï¼å¹¶ä¸å¯è½ä¼å¯¼è´é¢å¤çé®é¢ãåè§ <input>
æ ç¾ä»¥è·åæ´å¤ä¿¡æ¯ã
readonly
å¦æè¯¥å¸å°å±æ§åå¨ï¼æå³çç¨æ·å°ä¸è½ç¼è¾æ¤å段ãç¶èå
¶ value
å¼ä»ç¶å¯ä»¥ç´æ¥éè¿ JavaScript 代ç 设置 HTMLInputElement
ç value
屿§æ¹åã
夿³¨ï¼ ç±äºåªè¯»å段ä¸å¯ä»¥æ¥æå¼ï¼required
ä¸ä¼å¯¹æå®äº readonly
屿§çåæ®µèµ·ä½ç¨ã
step
step
屿§æå®äºå¼å¿
须满足çç²åº¦ï¼æè
æ¯ä¸ææè¿°çç¹æ®å¼ any
ãå¼å¿
须满足åºç¡çæ¥è¿å¼ï¼æææã妿æå®äº min
屿§ï¼åç± min 屿§å³å®ï¼å¦åï¼ä½¿ç¨ value
屿§çå¼ï¼å¦æä¸è¿°ä¸¤ä¸ªå¼é½ä¸åå¨ï¼åæä¾éå½çé»è®¤å¼ã
åç¬¦ä¸²å¼ any
æå³çä¸ä½¿ç¨æ¥è¿å¼ï¼ä»»æå¼é½å¯ä»¥æ¥åï¼é¤å
¶ä»å¶çº¦å ç´ å¦ min
æ max
ä¹å¤ï¼ã
夿³¨ï¼ å½ç¨æ·è¾å ¥çæ°æ®ä¸ç¬¦åæ¥è¿é ç½®æ¶ï¼ç¨æ·ä»£çå¯è½ä¼åèäºå ¥å°æè¿çææå¼ï¼å½æä¸¤ä¸ªåæ ·æ¥è¿çé项æ¶ï¼æ´å¾åäºæ£æ¹åçæ°åã
number
è¾å
¥çé»è®¤æ¥è¿å¼ä¸º 1
ï¼ä¸åªå
许æ°åè¾å
¥ââé¤éæ¥è¿å¼ä¸æ¯æ°åã
number
è¾å
¥ç±»ååªè½ç¨äºå¯å¢é¿çæ°åï¼ç¹å«æ¯å¨ä½¿ç¨æé®å¢å弿å©äºç¨æ·ä½éªçæ¶åãnumber
è¾å
¥ç±»åå¯¹äºæ¾ç¤ºé£äºä¸è½ä¸¥æ ¼è¡¨ç¤ºæ°åï¼å¯è½åªæ¯ç¢°å·§å
嫿°åï¼çå¼ï¼ä¾å¦é®æ¿ç¼ç ãä¿¡ç¨å¡å·çï¼å¹¶ä¸åéã对äºéæ°åè¾å
¥ï¼è¯·èè使ç¨ä¸åç input ç±»åï¼ä¾å¦ <input type="tel">
æå
¶ä»å
å« inputmode
屿§ç <input>
ç±»åã
<input type="text" inputmode="numeric" pattern="\d*" />
<input type ="number">
å
ç´ å¯ä»¥å¸®å©ç®åæå»ºå¨è¡¨åä¸è¾å
¥æ°åçç¨æ·çé¢åé»è¾ãå½ä½ ä½¿ç¨æ£ç¡®ç type
å¼ number
å建æ°åè¾å
¥æ¶ï¼ä¼èªå¨éªè¯ä½ è¾å
¥çææ¬æ¯å¦ä¸ºæ°åï¼èä¸é常ä¼ä¸å设置ä¸ç»ç¨äºæ¥è¿æ°åå¼çåä¸å䏿é®ã
è¦åï¼ é»è¾ä¸ï¼ä¸åºè¯¥åæ°åè¾å ¥æ¡è¾å ¥æ°å以å¤çå符ãæäºæµè§å¨å 许è¿äºä¸åæ³å符ï¼å¦å¤ä¸äºæµè§å¨ä¸å 许ï¼è¯·æ¥ç Firefox bug 1398528ã
夿³¨ï¼ è®°ä½ï¼ç¨æ·å¯ä»¥å¨å¹åä¿®æ¹ HTMLï¼å æ¤ç½ç«ä¸å¾ä½¿ç¨ç®åç客æ·ç«¯éªè¯æ¥å®ç°ä»»ä½å®å ¨ç®çãä½ å¿ é¡»å¨æå¡å¨ç«¯éªè¯ææä¾çå¼ï¼ä»¥ç¡®ä¿è¿äºå¼æ²¡æä»»ä½å®å ¨é®é¢ã
æ¤å¤ï¼ç§»å¨æµè§å¨éè¿å¨ç¨æ·å°è¯è¾å ¥å¼æ¶æ¾ç¤ºæ´éåè¾å ¥æ°åçç¹æ®é®çï¼è¿ä¸æ¥å¸®å©ç¨æ·ä½éªã
ä¸ä¸ªç®åç number è¾å ¥æ¡å¨æåºæ¬çå½¢å¼ä¸ï¼æ°åè¾å ¥å¯ä»¥åè¿æ ·å®ç°ï¼
<label for="ticketNum">éè¦ä¹°ç¥¨çæ°éï¼</label>
<input id="ticketNum" type="number" name="ticketNum" value="0" />
æ°åè¾å
¥å¨ä¸ºç©ºçæ¶å以åè¾å
¥å个æ°åæ¶è¢«è®¤ä¸ºæ¯ææçï¼å¦åæ¯æ æçãå¦æä½¿ç¨äº required
屿§ï¼åè¾å
¥å¨ç©ºæ¶ä¸å被è§ä¸ºææã
夿³¨ï¼ 任使°å齿¯å¯æ¥åçå¼ï¼åªè¦å®æ¯ææçæµ®ç¹æ°ï¼å³ä¸æ¯ NaN æ Infinityï¼ã
å ä½ç¬¦ææ¶ï¼æä¾ä¸ä¸ªå¦ä½è¾å
¥è¡¨åæ°æ®çä¸ä¸ææç¤ºæ¯é常å好çãå°¤å
¶å½é¡µé¢ææ<input>
å
ç´ é½æ²¡æè¯´ææ ç¾æ¶ï¼ä¼é常éè¦ãè¿å°±æ¯ä½¿ç¨å ä½ç¬¦çåå ãå ä½ç¬¦æ¯ä¸ä¸ªé常ç¨äºè¯´æä¸ä¸ªè¾å
¥æ¡ç value
åºè¯¥å¦ä½è¾å
¥çæç¤ºå¼ï¼å½å
ç´ ç value
为 ""
æ¶ï¼è¯¥æç¤ºå°åºç°å¨ç¼è¾æ¡éé¢ã䏿¦ææ°æ®è¾å
¥å°ç¼è¾æ¡ä¸ï¼å ä½ç¬¦å°±ä¼æ¶å¤±ï¼å¦æè¯¥æ¡è¢«æ¸
空ï¼å ä½ç¬¦å°éæ°åºç°ã
è¿éï¼æä»¬æä¸ä¸ªå ä½ç¬¦ä¸º "Multiple of 10
" ç number
è¾å
¥æ¡ã请注æå¨ç¼è¾å段å
容æ¶å ä½ç¬¦æ¯å¦ä½æ¶å¤±çï¼åæ¯å¦ä½éç°çã
<input type="number" placeholder="Multiple of 10" />
æ§å¶æ¥è¿å¤§å°
é»è®¤æ
åµä¸ï¼åä¸åå䏿é®å¯ä»¥å°å¼å¢å æåå° 1ãä½ å¯ä»¥ä½¿ç¨ step
屿§æ¥æ´æ¹æ¤æ¥é¿å¼ãæä»¬ä¸é¢çä¾åä¸çå ä½ç¬¦æç¤ºæä»¬å
¶å¼æ¯ 10 çåæ°ï¼æä»¥è®¾ç½® step
çå¼ä¸º 10
æ¯åççï¼
<input type="number" placeholder="multiple of 10" step="10" />
å¨è¿ä¸ªä¾åä¸ï¼ä½ ä¼åç°ä¸ä¸ç®å¤´æ¯æ¬¡ä¼å°å ¶å¼å¢å ååå° 10ï¼è䏿¯ 1ãä½ ä»ç¶å¯ä»¥æå¨è¾å ¥ä¸ä¸ªä¸æ¯ 10 çåæ°çæ°åï¼ä½å®ä¼è¢«è®¤ä¸ºæ¯æ æçã
æå®æå°åæå¤§å¼å¯ä»¥ä½¿ç¨ min
å max
屿§æå®è¯¥å段å¯ä»¥å
·æçæå°å¼åæå¤§å¼ãä¾å¦ï¼å¯ä»¥ç»æä»¬çç¤ºä¾æå®æå°å¼ä¸º 0
ï¼æå¤§å¼ä¸º 100
ï¼
<input type="number" placeholder="multiple of 10" step="10" min="0" max="100" />
ä¿®æ¹è¿åï¼ä½ ä¼åç°ç¹å»ä¸ä¸æé®ä¸ä¼è®©ä½ ä½äº 0 æé«äº 100 . å¯ä»¥å¨è¿äºçéä¹å¤æå¨è¾å ¥æ°åï¼ä½å®å°è¢«è§ä¸ºæ æã
å è®¸å°æ°å¼æ°åè¾å
¥çä¸ä¸ªé®é¢æ¯ï¼æ¥é¿é»è®¤ä¸º 1ââå¦æä½ å°è¯è¾å
¥å¸¦å°æ°çæ°åï¼ä¾å¦â1.0âï¼ï¼åå®å°è¢«è§ä¸ºæ æã妿è¦è¾å
¥ä¸ä¸ªéè¦å°æ°çå¼ï¼åéè¦ä¿®æ¹ step
å¼ï¼ä¾å¦ï¼step="0.01"
以å
许 2 ä½å°æ°ï¼ãè¿éæä¸ä¸ªç®åçä¾åï¼
<input type="number" placeholder="1.0" step="0.01" min="0" max="10" />
ä½ å¯ä»¥çå°è¿ä¸ªä¾åå
许 0.0
å° 10.0
ä¹é´çä»»ä½å¼ï¼å°æ°ç¹ä¸º 2 ä½ãæ¬ä¾ä¸ï¼â9.52âæ¯ææçï¼ä½â9.521âæ æã
ç±»å为 number
ç <input>
å
ç´ ä¸æ¯æå size
ä¹ç±»çè°æ´å¤§å°å±æ§ãä½ å¿
é¡»éè¿åå© CSS æ¥æ¹åå®ä»¬ç尺寸大å°ã
ä¾å¦ï¼è¦è°æ´è¾å ¥æ¡çå®½åº¦ä¸ºä» å¯è¾å ¥ 3 使°åçå®½åº¦ï¼æä»¬å¯ä»¥å¨ HTML 䏿·»å ä¸ä¸ª ID 并缩çå¾é¿çå ä½ç¬¦ææ¬ï¼è¿ä¸ªå段对äºç®åçç¤ºä¾æ¥è¯´å¤ªçªäºï¼ï¼å¦ä¸ï¼
<input
type="number"
placeholder="x10"
step="10"
min="0"
max="100"
id="number" />
ç¶åæä»¬ä½¿ç¨ id
éæ©å¨ #number
缩å°å
ç´ ç宽度ï¼
ææå¦ä¸ï¼
æä¾å»ºè®®å¼ä½ å¯ä»¥éè¿æå® list
屿§æ¥æä¾ä¸ä¸ªé»è®¤é项å表ï¼ç¨æ·å¯ä»¥ä»ä¸éæ©ï¼è¯¥å±æ§å
å«ä¸ä¸ª <datalist>
ç ID ä½ä¸ºå
¶å¼ï¼è该 ID åå
å«ä¸ä¸ª <option>
å
ç´ çæ¯ä¸ªå»ºè®®å¼ï¼æ¯ä¸ª option
ç value
å°±æ¯æ°åè¾å
¥æ¡çç¸åºå»ºè®®å¼ã
<input id="ticketNum" type="number" name="ticketNum" list="defaultNumbers" />
<span class="validity"></span>
<datalist id="defaultNumbers">
<option value="10045678"></option>
<option value="103421"></option>
<option value="11111111"></option>
<option value="12345678"></option>
<option value="12999922"></option>
</datalist>
éªè¯
æä»¬å·²ç»æåäºä¸äºæ°åè¾å ¥çéªè¯ç¹æ§ï¼æ¥å个åå¿ï¼
<input type="number">
å
ç´ èªå¨æç»ä»»ä½éæ°åè¾å
¥ï¼å¦ææå®äº required
ï¼ä¹ä¼æç»ç©ºçè¾å
¥ï¼ãrequired
屿§æ¥ä½¿å¾ç©ºçè¾å
¥æ æï¼ä¹å°±æ¯è¯´ï¼è¯¥è¾å
¥æ¡å¿
é¡»æå¼å¡«å
¥ãstep
屿§æ¥å°ææå¼éå¶å¨ä¸ç³»åæ¥è¿å¼ä¸ï¼å¦ 10 çåæ°ï¼ãmin
å max
屿§æ¥éå¶è¾å
¥çæå¤§ä¸æå°å¼ã以ä¸ç¤ºä¾å±ç¤ºäºä¸é¢æè¿°çææç¹æ§ï¼ä¹ä½¿ç¨äº CSS æ¥æ ¹æ® input
çä¸åå¼ï¼æ¾ç¤ºåæ³åä¸åæ³ç徿 ï¼
<form>
<div>
<label for="balloons">è¦è´ä¹°æ°ççæ°éï¼10 çåæ°ï¼ï¼</label>
<input
id="balloons"
type="number"
name="balloons"
step="10"
min="0"
max="100"
required />
<span class="validity"></span>
</div>
<div>
<input type="submit" />
</div>
</form>
请å°è¯ä»¥éæ³çå¼æäº¤è¯¥è¡¨åï¼å¦ç©ºå¼ãå°äº 0 æå¤§äº 100 çå¼ã䏿¯ 10 çåæ°çå¼ãæéæ°åå¼ââæ¥è§å¯ä¸ä¸æµè§å¨å¦ä½æç¤ºè¿äºé误信æ¯ã
该示ä¾åºç¨ç CSS å¦ä¸æç¤ºï¼
div {
margin-bottom: 10px;
}
input:invalid + span::after {
content: "â";
padding-left: 5px;
}
input:valid + span::after {
content: "â";
padding-left: 5px;
}
æä»¬ä½¿ç¨äº :invalid
å :valid
伪类ï¼å¨ç¸é»ç <span>
å
ç´ ä¸æ¾ç¤ºä¸ä¸ªéå½çæ ææææå¾æ ä½ä¸ºçæå
容ï¼ä½ä¸ºæææ§çè§è§ææ ã
æä»¬æå®æ¾å¨ä¸ä¸ªåç¬ç <span>
å
ç´ ä¸ï¼ä»¥å¢å çµæ´»æ§ï¼ä¸äºæµè§å¨å¨æäºç±»åç表åè¾å
¥ä¸ä¸è½å¾ææå°æ¾ç¤ºçæçå
容ï¼è¯·é
读 <input type="date">
éªè¯ä¸èç示ä¾ä»¥äºè§£ï¼ã
è¦åï¼ å®¢æ·ç«¯è¡¨åéªè¯ä¸è½æ¿ä»£æå¡ç«¯éªè¯ãå¯¹äºæäººæ¥è¯´ï¼å¯¹ HTML è¿è¡è°æ´ä»¥ä½¿å ¶ç»è¿éªè¯æå®å ¨å é¤éªè¯å¤ªå®¹æäºï¼çè³ä¹å¯ä»¥å®å ¨ç»å¼ HTML å¹¶å°æ°æ®ç´æ¥æäº¤å°æå¡å¨ã妿æå¡å¨ç«¯ä»£ç æ æ³éªè¯å ¶æ¥æ¶å°çæ°æ®ï¼åå¨æäº¤æ ¼å¼ä¸æ£ç¡®çï¼æå¤ªå¤§ï¼ç±»åé误â¦â¦ï¼çæ°æ®æ¶ï¼ç¾é¾å¯è½ä¼åçã
模å¼éªè¯<input type="number">
䏿¯æ pattern
屿§ä»¥éªè¯è¾å
¥å¼æ¯å¦æ»¡è¶³ç¹å®çæ£å表达å¼ã
è¿æ ·åççç±æ¯ï¼å¦ææ°åè¾å
¥ä¸å
å«é¤æ°å以å¤çä»»ä½å
容ï¼åä¸ä¼ææï¼ä½ å¯ä»¥ä½¿ç¨ min
å max
屿§æ¥éå¶æææ°åçæå°åæå¤§æ°éï¼å¦ä¸æè¿°ï¼ã
æä»¬å·²ç»ä»ç»è¿ï¼é»è®¤æ
åµä¸ï¼å¢éæ¯ 1
ï¼ä½ å¯ä»¥ä½¿ç¨ step
屿§æ¥å
è®¸å°æ°è¾å
¥ã
å¨ä¸é¢çä¾åä¸ï¼æä»¬è®¾ç½®äºä¸ä¸ªç¨äºè¾å ¥ç¨æ·èº«é«ç表åï¼å®é»è®¤æ¥å以米为åä½ç身é«ï¼ä½ä½ å¯ä»¥ç¹å»ç¸å ³æé®æ¥æ¹å表åï¼ä½¿å ¶æ¥åè±å°ºåè±å¯¸ãè¾å ¥ç±³ç身é«å¯ä»¥æ¥åå°æ°ç¹å两ä½ã
HTML 代ç çèµ·æ¥åè¿æ ·ï¼
<form>
<div class="metersInputGroup">
<label for="meters">Enter your height â meters:</label>
<input
id="meters"
type="number"
name="meters"
step="0.01"
min="0"
placeholder="e.g. 1.78"
required />
<span class="validity"></span>
</div>
<div class="feetInputGroup" style="display: none;">
<span>Enter your height â </span>
<label for="feet">feet:</label>
<input id="feet" type="number" name="feet" min="0" step="1" />
<span class="validity"></span>
<label for="inches">inches:</label>
<input id="inches" type="number" name="inches" min="0" max="11" step="1" />
<span class="validity"></span>
</div>
<div>
<input
type="button"
class="meters"
value="Enter height in feet and inches" />
</div>
<div>
<input type="submit" value="Submit form" />
</div>
</form>
ä½ ä¼çå°ï¼æä»¬æ£å¨ä½¿ç¨è®¸å¤æä»¬å·²ç»å¨åé¢çæç« ä¸çè¿ç屿§ãç±äºæä»¬æ³æ¥å以å米为åä½çç±³å¼ï¼æä»¬å° step
å¼è®¾ç½®ä¸º 0.01
ï¼è¿æ ·å 1.78 è¿æ ·çå¼å°±ä¸ä¼è¢«è§ä¸ºæ æãæä»¬è¿ä¸ºè¿ä¸ªè¾å
¥æä¾äºä¸ä¸ªå ä½ç¬¦ã
æä»¬ä½¿ç¨ style="display: none;"
éèäºè±å°ºåè±å¯¸çè¾å
¥ï¼æä»¥ç±³æ¯é»è®¤çè¾å
¥ç±»åã
ç°å¨æ¥çç CSS 代ç ââè·ä¹åçéªè¯é¨åæ ·å¼çèµ·æ¥æ¯ä¸æ ·çï¼æ²¡ä»ä¹å¯è¯´çï¼
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;
}
æåæ¯ä¸äº JavaScript 代ç ï¼
const metersInputGroup = document.querySelector(".metersInputGroup");
const feetInputGroup = document.querySelector(".feetInputGroup");
const metersInput = document.querySelector("#meters");
const feetInput = document.querySelector("#feet");
const inchesInput = document.querySelector("#inches");
const switchBtn = document.querySelector('input[type="button"]');
switchBtn.addEventListener("click", () => {
if (switchBtn.getAttribute("class") === "meters") {
switchBtn.setAttribute("class", "feet");
switchBtn.value = "Enter height in meters";
metersInputGroup.style.display = "none";
feetInputGroup.style.display = "block";
feetInput.setAttribute("required", "");
inchesInput.setAttribute("required", "");
metersInput.removeAttribute("required");
metersInput.value = "";
} else {
switchBtn.setAttribute("class", "meters");
switchBtn.value = "Enter height in feet and inches";
metersInputGroup.style.display = "block";
feetInputGroup.style.display = "none";
feetInput.removeAttribute("required");
inchesInput.removeAttribute("required");
metersInput.setAttribute("required", "");
feetInput.value = "";
inchesInput.value = "";
}
});
å¨å£°æäºä¸äºåéä¹åï¼æä»¬ä¸ºæé®æ·»å ä¸ä¸ªäºä»¶çå¬å¨æ¥æ§å¶åæ¢æºå¶ãè¿å¾ç®åï¼ä¸»è¦æ¯æ¹åæé®çç±»å«åæ ç¾ï¼å¹¶å¨æé®è¢«æä¸æ¶æ´æ°ä¸¤ç»è¾å ¥çæ¾ç¤ºå¼ã请注æï¼æä»¬ä¸æ¯å¨ç±³åè±å°º/è±å¯¸ä¹é´æ¥å转æ¢ï¼ç°å®çæ´»ä¸çç½ç»åºç¨å¯è½ä¼è¿ä¹åã
夿³¨ï¼ 请注æï¼å½ç¨æ·ç¹å»æé®æ¶ï¼æä»¬ä»éèçè¾å
¥ä¸ç§»é¤ required
屿§ï¼å¹¶æ¸
空 value
屿§ãè¿æ ·æä»¬å°±å¯ä»¥å¨ä¸¤ä¸ªè¾å
¥ç»é½æ²¡æå¡«åçæ
åµä¸æäº¤è¡¨åï¼èä¸ä¼æäº¤é£äºæä»¬ä¸æ³æäº¤çæ°æ®ã妿æä»¬ä¸è¿æ ·åï¼ä½ å°±å¿
须忶填å
¥è±å°º/è±å¯¸åç±³æ¥æäº¤è¡¨åäºï¼
<input type="number">
å
ç´ çéå« role æ¯ spinbutton
ã妿 spinbutton å¯¹ä½ çè¡¨åæ§ä»¶æ¥è¯´ä¸æ¯ä¸ä¸ªéè¦çåè½ï¼é£å°±ä¸è¦ä½¿ç¨ type="number"
ï¼æ¤æ¶ï¼è¯·ä½¿ç¨å¸¦æ pattern
屿§ç inputmode="numeric"
ï¼å°å符éå¶å¨æ°ååç¸å
³å符ã妿åæä½¿ç¨ <input type="number">
ï¼ç¨æ·å¨è¯å¾åå
¶ä»äºæ
æ¶ï¼æå¯è½æå¤å°å¢å ä¸ä¸ªæ°åãæ¤å¤ï¼å¦æç¨æ·è¯å¾è¾å
¥ä¸æ¯æ°åçä¸è¥¿ï¼ä¹æ²¡ææç¡®çåé¦è¯´æä»ä»¬åéäºä»ä¹ã
ä¹å¯ä»¥èèä½¿ç¨ autocomplete
屿§ï¼å¸®å©ç¨æ·æ´å¿«å®æè¡¨åï¼åå°åºéçæºä¼ãä¾å¦ï¼è¦å¨ä¸ä¸ªé®ç¼å段ä¸å¯ç¨èªå¨å¡«ååè½ï¼è¯·è®¾ç½® autocomplete="postal-code"
ã
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