Baseline Widely available *
HTML <input>
å
ç´ ç¨äºä¸ºåºäº Web ç表åå建交äºå¼æ§ä»¶ï¼ä»¥ä¾¿æ¥åæ¥èªç¨æ·çæ°æ®ãåå³äºè®¾å¤åç¨æ·ä»£çä¸åï¼è¡¨åå¯ä»¥ä½¿ç¨åç§ç±»åçè¾å
¥æ°æ®åæ§ä»¶ã<input>
å
ç´ æ¯ç®å HTML ä¸æå¼ºå¤§ãæå¤æçå
ç´ ä¹ä¸ï¼å ä¸ºå®æå¤§éçè¾å
¥ç±»åå屿§ç»åã
<label for="name">Name (4 to 8 characters):</label>
<input
type="text"
id="name"
name="name"
required
minlength="4"
maxlength="8"
size="10" />
label {
display: block;
font:
1rem "Fira Sans",
sans-serif;
}
input,
label {
margin: 0.4rem 0;
}
<input> ç±»å
<input>
ç工使¹å¼ç¸å½ç¨åº¦ä¸åå³äº type
屿§çå¼ï¼ä¸åç type å¼ä¼å¨åèªçåè页ä¸è¿è¡ä»ç»ãå¦ææªæå®æ¤å±æ§ï¼åéç¨çé»è®¤ç±»å为 text
ã
å¯ç¨çå¼å æ¬ï¼
ç±»å æè¿° åºæ¬ç¤ºä¾ button 没æé»è®¤è¡ä¸ºçæé®ï¼ä¸é¢æ¾ç¤ºvalue
屿§çå¼ï¼é»è®¤ä¸ºç©ºã
<input type="button" name="button" value="Button" />
checkbox å¤éæ¡ï¼å¯å°å
¶å¼è®¾ä¸ºé䏿æªéä¸ã
<input type="checkbox" name="checkbox"/>
color ç¨äºæå®é¢è²çæ§ä»¶ï¼å¨æ¯æçæµè§å¨ä¸ï¼æ¿æ´»æ¶ä¼æå¼åè²å¨ã
<input type="color" name="color"/>
date è¾å
¥æ¥æçæ§ä»¶ï¼å¹´ãæãæ¥ï¼ä¸å
æ¬æ¶é´ï¼ã卿¯æçæµè§å¨æ¿æ´»æ¶æå¼æ¥æéæ©å¨æå¹´ææ¥çæ°åæ»è½®ã
<input type="date" name="date"/>
datetime-local è¾å
¥æ¥æåæ¶é´çæ§ä»¶ï¼ä¸å
æ¬æ¶åºã卿¯æçæµè§å¨æ¿æ´»æ¶æå¼æ¥æéæ©å¨æå¹´ææ¥çæ°åæ»è½®ã
<input type="datetime-local" name="datetime-local"/>
email ç¼è¾é®ç®±å°åçåæ®µã类似 text
è¾å
¥ï¼ä½å¨æ¯æçæµè§å¨å带æå¨æé®çç设å¤ä¸ä¼æéªè¯åæ°åç¸åºçé®çã
<input type="email" name="email"/>
file è®©ç¨æ·éæ©æä»¶çæ§ä»¶ãä½¿ç¨ accept
屿§è§å®æ§ä»¶è½éæ©çæä»¶ç±»åã
<input type="file" accept="image/*, text/*" name="file"/>
hidden 䏿¾ç¤ºçæ§ä»¶ï¼å
¶å¼ä»ä¼æäº¤å°æå¡å¨ã举个ä¾åï¼å³è¾¹å°±æ¯ä¸ä¸ªéå½¢çæ§ä»¶ã
<input id="userId" name="userId" type="hidden" value="abc123">
image å¾å½¢å submit
æé®ãæ¾ç¤ºçå¾åç± src
屿§å³å®ã妿 src
屿§ç¼ºå¤±ï¼å°±ä¼æ¾ç¤º alt
çå
容ã
<input type="image" name="image" src="" alt="image input"/>
month è¾å
¥å¹´åæçæ§ä»¶ï¼æ²¡ææ¶åºã
<input type="month" name="month"/>
number ç¨äºè¾å
¥æ°åçæ§ä»¶ãå¦ææ¯æçè¯ï¼ä¼æ¾ç¤ºæ»å¨æé®å¹¶æä¾ç¼ºçéªè¯ï¼å³åªè½è¾å
¥æ°åï¼ãæ¥æå¨æé®çç设å¤ä¸ä¼æ¾ç¤ºæ°åé®çã
<input type="number" name="number"/>
password åè¡çææ¬åºåï¼å
¶å¼ä¼è¢«é®çã妿ç«ç¹ä¸å®å
¨ï¼ä¼è¦åç¨æ·ã
<input type="password" name="password"/>
radio åéæé®ï¼å
许å¨å¤ä¸ªæ¥æç¸å name
å¼çé项ä¸éä¸å
¶ä¸ä¸ä¸ªã
<input type="radio" name="radio"/>
range æ¤æ§ä»¶ç¨äºè¾å
¥ä¸éè¦ç²¾ç¡®çæ°åãæ§ä»¶æ¯ä¸ä¸ªèå´ç»ä»¶ï¼é»è®¤å¼ä¸ºæ£ä¸é´çå¼ãåæ¶ä½¿ç¨ min
å max
æ¥è§å®å¯æ¥åå¼çèå´ã
<input type="range" name="range" min="0" max="25"/>
reset æ¤æé®å°è¡¨åçææå
容é置为é»è®¤å¼ã䏿¨è使ç¨è¯¥ç±»åã
<input type="reset" name="reset"/>
search ç¨äºæç´¢å符串çåè¡æååºåãè¾å
¥ææ¬ä¸çæ¢è¡ä¼è¢«èªå¨å»é¤ã卿¯æçæµè§å¨ä¸å¯è½æä¸ä¸ªå 餿é®ï¼ç¨äºæ¸
餿´ä¸ªåºåãæ¥æå¨æé®çç设å¤ä¸çåè½¦å¾æ ä¼åææç´¢å¾æ ã
<input type="search" name="search"/>
submit ç¨äºæäº¤è¡¨åçæé®ã
<input type="submit" name="submit"/>
tel ç¨äºè¾å
¥çµè¯å·ç çæ§ä»¶ãæ¥æå¨æé®çç设å¤ä¸ä¼æ¾ç¤ºçµè¯æ°åé®çã
<input type="tel" name="tel"/>
text é»è®¤å¼ãåè¡çææ¬åæ®µï¼è¾å
¥å¼ä¸çæ¢è¡ä¼è¢«èªå¨å»é¤ã
<input type="text" name="text"/>
time ç¨äºè¾å
¥æ¶é´çæ§ä»¶ï¼ä¸å
æ¬æ¶åºã
<input type="time" name="time"/>
url ç¨äºè¾å
¥ URL çæ§ä»¶ã类似 text
è¾å
¥ï¼ä½æéªè¯åæ°ï¼å¨æ¯æå¨æé®çç设å¤ä¸æç¸åºçé®çã
<input type="url" name="url"/>
week ç¨äºè¾å
¥ä»¥å¹´å卿°ç»æçæ¥æï¼ä¸å¸¦æ¶åºã
<input type="week" name="week"/>
åºå¼çå¼ datetime
å·²å¼ç¨ ç¨äºè¾å
¥åºäº UTC æ¶åºçæ¥æåæ¶é´ï¼æ¶ãåãç§åç§çå°æ°é¨åï¼ã
<input type="datetime" name="datetime"/>
屿§
<input>
å
ç´ ç±äºæ¥æè¯¸å¤å±æ§èå¼å¸¸å¼ºå¤§ï¼å
¶ä¸åæä¸¾ä¾è¯´æç type
屿§å°¤å
¶éè¦ãç±äºææ <input>
å
ç´ æ 论æ¯åªç§ type
ï¼é½åºäº HTMLInputElement
æ¥å£ï¼æä»¥ç论ä¸è¯´ï¼å®ä»¬å
±äº«ä¸å¥ç¸åç屿§ãä½å®é
ä¸å¤§é¨å屿§åªä½ç¨äºç¹å®ä¸ç» type
ãæ¤å¤ï¼ä¸äºå±æ§ä½ç¨äº <input>
çæ¹å¼åå³äº <input>
ç type
屿§ï¼ä¸åç type
æä¸åçææã
ä¸é¢çè¡¨æ ¼ååºäºææå±æ§ï¼æ¯ä¸ªå±æ§é½æç®ççæè¿°ãè¡¨æ ¼åçå表æ´è¯¦ç»å°æè¿°äºåä¸ªå±æ§åå®ä»¬ä¸åªäº input ç±»åç¸å
³ãä¸å¤§é¨åæè
å
¨é¨ input ç±»åé½ç¸å
³ç屿§ä¼è®²è¿°æ´å¤ç»èãä¸äºé对ç¹å® input ç±»åç屿§ï¼æè
ææ input ç±»å齿ï¼ä½å¨ç¹å®ç input ç±»å䏿ç¹å®è¡¨ç°ç屿§ï¼ä¼å¨ç¸åºçç±»å页é¢ä¸è¯´æãè¿ä¸ªå
ç´ å
å«å
¨å±å±æ§ï¼ä¸äºé对 <input>
å
ç´ æé¢å¤æä¹çå
¨å±å±æ§ä¹ä¼ç¹å«è¯´æã
<input>
å
ç´ å
å«ç屿§å
å«å
¨å±ç HTML 屿§å以ä¸è¿äºé¢å¤å±æ§ï¼
accept
file
æä»¶ä¸ä¼ æ§ä»¶ä¸é¢ææä»¶ç±»åçæç¤º alt
image
å¾çç±»åç alt 屿§ã对æ éç¢æ¯å¿
éç autocomplete
é¤äº checkbox
ãradio
åæé®ä»¥å¤ 表åèªå¨å¡«å
ç¹æ§æç¤º capture
file
æä»¶ä¸ä¼ æ§ä»¶ä¸åªä½æè·æ¹æ³çæç¤º checked
checkbox
ãradio
æ§ä»¶æ¯å¦éä¸ dirname
search
ãtext
表ååæ®µçåç§°ï¼ç¨äºå¨æäº¤è¡¨åæ¶åéå
ç´ çæ¹åæ§ disabled
ææç±»å è¡¨åæ§ä»¶æ¯å¦ç¦ç¨ form
ææç±»å å°æ§ä»¶èç³»å°è¡¨åå
ç´ ä¸ formaction
image
ãsubmit
è¦æäº¤è¡¨åç URL å°å formenctype
image
ãsubmit
æäº¤è¡¨åæ¶ä½¿ç¨çè¡¨åæ°æ®ç¼ç ç±»å formmethod
image
ãsubmit
æäº¤è¡¨åæ¶æä½¿ç¨ç HTTP æ¹æ³ formnovalidate
image
ãsubmit
ç»è¿è¡¨åæäº¤æ¶çè¡¨åæ§ä»¶éªè¯ formtarget
image
ãsubmit
æäº¤è¡¨åæ¶çæµè§ä¸ä¸æ height
image
ä¸ <img>
å
ç´ ç height 屿§æç¸åå«ä¹ï¼åç´æ¹åä¸çç»´åº¦å¼ list
é¤äº hidden
ãpassword
ãcheckbox
ãradio
åæé®ä»¥å¤ èªå¨å®æé项ç <datalist>
ç id 屿§çå¼ max
date
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
ãrange
æå¤§å¼ maxlength
text
ãsearch
ãurl
ãtel
ãemail
ãpassword
value
çæå¤§é¿åº¦ï¼å符æ°ï¼ min
date
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
ãrange
æå°å¼ minlength
text
ãsearch
ãurl
ãtel
ãemail
ãpassword
value
çæå°é¿åº¦ï¼å符æ°ï¼ multiple
email
ãfile
å¸å°å¼ãæ¯å¦å
许å¤ä¸ªå¼ name
ææç±»å 表åçæ§ä»¶åç§°ï¼ä½ä¸ºé®å¼å¯¹çä¸é¨åä¸è¡¨åä¸åæäº¤ pattern
text
ãsearch
ãurl
ãtel
ãemail
ãpassword
为äºä½¿å¾ value
ææï¼å¿
须符åçæ¨¡å¼ placeholder
text
ãsearch
ãurl
ãtel
ãemail
ãpassword
ãnumber
彿²¡æå¼è®¾å®æ¶ï¼åºç°å¨è¡¨åæ§ä»¶ä¸çæå readonly
é¤äº hidden
ãrange
ãcolor
ãcheckbox
ãradio
åæé®ä»¥å¤ å¸å°å¼ã妿åå¨ï¼å
¶ä¸çå¼å°ä¸å¯ç¼è¾ã required
é¤äº hidden
ãrange
ãcolor
åæé®ä»¥å¤ å¸å°å¼ã妿åå¨ï¼ä¸ä¸ªå¼æ¯å¿
éçï¼æè
å¿
é¡»å¾éè¯¥å¼æè½æäº¤è¡¨æ ¼ã size
text
ãsearch
ãurl
ãtel
ãemail
ãpassword
æ§ä»¶ç尺寸 src
image
ä¸ <img>
å
ç´ ç src
屿§å«ä¹ç¸åï¼å¾çèµæºçå°å step
date
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
ãrange
ææçå¢éå¼ type
ææç±»å è¡¨åæ§ä»¶çç±»å value
ææç±»å è¡¨åæ§ä»¶çåå§å¼ width
image
ä¸ <img>
å
ç´ ç width
屿§å«ä¹ç¸å
ä¸äºé¢å¤çéæ å屿§è¢«å卿 å屿§çæè¿°ä¹åã
屿§å论accept
ä»
对 file
è¾å
¥ç±»åææãaccept
屿§å®ä¹äº file
ä¸ä¼ æ§ä»¶å¯éæ©æä»¶ç±»åçå表ãåè§ file è¾å
¥ç±»å以äºè§£æ´å¤ä¿¡æ¯ã
alt
ä»
对 image
ç±»åææãalt
屿§æä¾äºå¾ççæ¿ä»£æåï¼å¨å¾çç src
屿§ç¼ºå¤±æå¯¹åºèµæºå 载失败æ¶ï¼ä¼æ¾ç¤ºè¯¥å±æ§çå¼ãåè§ image è¾å
¥ç±»å以äºè§£æ´å¤ä¿¡æ¯ã
autocomplete
ï¼ä¸æ¯ä¸ä¸ªå¸å°å±æ§ï¼ï¼autocomplete
屿§å°ä¸ä¸ªç©ºæ ¼åéçå符串ä½ä¸ºå
¶å¼ï¼æè¿°è¾å
¥åºè¯¥æä¾ä»ä¹ç±»åçèªå¨å®æåè½ãä¸ä¸ªå
¸åçèªå¨å®æçå®ç°æ¯åå¿ä»¥åå¨åä¸è¾å
¥å段ä¸è¾å
¥çå¼ï¼ä½ä¹å¯è½å卿´å¤æçèªå¨å®æå½¢å¼ãä¾å¦ï¼æµè§å¨å¯ä»¥ä¸è®¾å¤çè系人å表éæï¼å¨çµåé®ä»¶è¾å
¥æ ä¸èªå¨å®æ email
å°åã请åé
autocomplete
以äºè§£å
许çå¼ã
autocomplete
屿§å¯¹ hidden
ãtext
ãsearch
ãurl
ãtel
ãemail
ãdate
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
ãrange
ãcolor
å password
ç±»åçè¾å
¥ææãè¯¥å±æ§å¯¹äºé£äºä¸è¿åæ°å¼æææ¬æ°æ®çè¾å
¥æ§ä»¶æ²¡æææï¼å¯¹é¤äº checkbox
ãradio
ãfile
å任使é®ç±»åçææè¾å
¥ç±»ååææã
æ¥ç HTML autocomplete 屿§ä»¥äºè§£é¢å¤ä¿¡æ¯ï¼å
æ¬å¯ç å®å
¨åå¯¹äº hidden
æ¥è¯´ï¼autocomplete
çæ¹å¼ä¸å
¶ä»è¾å
¥ç±»åç¥æä¸åã
autofocus
ä¸ä¸ªå¸å°å±æ§ï¼å¦æåå¨ï¼è¡¨ç¤ºå½é¡µé¢å è½½å®æ¯ï¼æå
å«è¯¥å
ç´ ç <dialog>
æ¾ç¤ºå®æ¯ï¼æ¶ï¼è¯¥ input å
ç´ åºè¯¥èªå¨æ¥æç¦ç¹ã
夿³¨ï¼ å
·æ autofocus
屿§çå
ç´ å¯è½å¨ DOMContentLoaded
äºä»¶è§¦ååè·å¾ç¦ç¹ã
ææ¡£ä¸åªæä¸ä¸ªè¡¨åå
ç´ å¯ä»¥å
·æ autofocus
屿§ã妿æ¾ç½®äºå¤äºä¸ä¸ªå
ç´ ï¼ä¼èç¦ç¬¬ä¸ä¸ªå
·æè¯¥å±æ§çå
ç´ ã
autofocus
ä¸è½åºç¨äºç±»å为 hidden
çè¾å
¥æ§ä»¶ä¸ï¼å 为éèçæ§ä»¶ä¸å¯èç¦ã
è¦åï¼ èªå¨èç¦è¡¨åæ§ä»¶ä¼ä½¿ä½¿ç¨è¯»å±ææ¯çè§åéç¢è
åæè®¤ç¥éç¢ç人æå°å°æã彿å®äº autofocus
æ¶ï¼è¯»å±å¨ä¼å°ç¨æ·âä¼ éâå°è¡¨åæ§ä»¶ä¸ï¼èä¸ä¼äºå
è¦åä»ä»¬ã
å¨åºç¨ autofocus
屿§æ¶ï¼è¦ä»ç»èèæ éç¢é®é¢ãèªå¨èç¦äºä¸ä¸ªæ§ä»¶ä¼å¯¼è´é¡µé¢å¨å è½½æ¶æ»å¨ãç¦ç¹ä¹ä¼å¯¼è´å¨æé®ç卿äºè§¦æ¸è®¾å¤ä¸æ¾ç¤ºãè½ç¶å±å¹é
读å¨ä¼å®£å¸æ¶å°ç¦ç¹çè¡¨åæ§ä»¶çæ ç¾ï¼ä½å±å¹é
读å¨ä¸ä¼å®£å¸æ ç¾ä¹åçä»»ä½å
容ï¼å¨å°è®¾å¤ä¸çè§åè¯å¥½çç¨æ·åæ ·ä¼éè¿åé¢çå
容æåé çèæ¯ã
capture
å¨ HTML åªä½æè·è§èä¸å¼å
¥ï¼ä»
对 file
è¾å
¥ç±»åææï¼capture
屿§å®ä¹äºåºè¯¥ä½¿ç¨åªç§åªä½ï¼å¦éº¦å
é£ãè§é¢æç¸æºï¼æ¥æè·ä¸ä¸ªæ°æä»¶ï¼ä»¥ä¾¿å¨æ¯æåºæ¯ä¸ç¨ file
ä¸ä¼ æ§ä»¶ä¸ä¼ ãåè§ file è¾å
¥ç±»åã
checked
å¸å°å±æ§ï¼å¯¹äº radio
å checkbox
ç±»åææãå¦æå¨ radio
ç±»åä¸åºç°ï¼ä»£è¡¨è¯¥åéæé®æ¯å½åååç§°ç»ä¸æéå®çé£ä¸ä¸ªãå¦æå¨ checkbox
ç±»åä¸åºç°ï¼ä»£è¡¨é¡µé¢å è½½æ¶ï¼é»è®¤éæ©è¯¥å¤éæ¡ï¼è¿å¹¶ä¸ä»£è¡¨å¤éæ¡å½åæ¯å¦éæ©ï¼å¦æå¤éæ¡ç¶ææ¹åï¼è¯¥å
容屿§ä¸ä¼åé¦è¿ç§æ¹åï¼åªä¼æ´æ° HTMLInputElement
ç checked
IDL 屿§ã
夿³¨ï¼ ä¸å
¶ä»è¾å
¥æ§ä»¶ä¸åï¼å¤éæ¡ååéæé®çå¼åªä¼å¨ checked
ç¶ææ¶æä¼å
æ¬å¨æäº¤çæ°æ®ä¸ã妿å½åæ¯ checked
ç¶æï¼å¤éæ¡çåç§°åå¼å°±ä¼è¢«æäº¤ã
ä¾å¦ï¼name
为 fruit
çå¤éæ¡å«æ value
为 cherry
çä¸é¡¹ï¼ä¸è¯¥å¤éæ¡ä¸ºéä¸ç¶æï¼æäº¤çè¡¨åæ°æ®å°å
å« fruit=cherry
ï¼å¦æå¤éæ¡ä¸ºéæ´»å¨ç¶æï¼å®ä¸ä¼åå
¥å°è¡¨åæ°æ®ä¸ãå¤éæ¡ååéæé®çé»è®¤ value
å¼ä¸º on
ã
dirname
ä»
对 text
å search
è¾å
¥ç±»åææãdirname
屿§å
许æäº¤å
ç´ çæ¹åãå½å
å«è¿ä¸ªå±æ§æ¶ï¼è¡¨åæ§ä»¶å°æäº¤ä¸¤ä¸ªåç§°/å¼å¯¹ï¼ç¬¬ä¸ä¸ªæ¯ name
å value
ï¼ç¬¬äºä¸ªæ¯ dirname
ä½ä¸ºåç§°ï¼å
¶å¼ä¸ºæµè§å¨è®¾ç½®ç ltr
æ rtl
ã
<form action="page.html" method="post">
<label
>æ°´æï¼
<input type="text" name="fruit" dirname="fruit.dir" value="cherry" />
</label>
<input type="submit" />
</form>
<!-- page.html?fruit=cherry&fruit.dir=ltr -->
å½æäº¤ä¸è¿°è¡¨åæ¶ï¼ä¼åé name
/ value
对 fruit=cherry
å dirname
/ æ¹å对 fruit.dir=ltr
ã
disabled
ä¸ä¸ªå¸å°å±æ§ï¼å¦æåå¨çè¯ï¼è¡¨ç¤ºç¨æ·ä¸åºè¯¥ä¸è¯¥è¾å ¥è¿è¡äº¤äºãç¦ç¨çè¾å ¥éå¸¸ä»¥è¾æçé¢è²åç°ï¼æä½¿ç¨ä¸äºå ¶ä»å½¢å¼çæç¤ºï¼è¡¨æè¯¥å段ä¸è½ä½¿ç¨ã
å
·ä½æ¥è¯´ï¼ç¦ç¨çè¾å
¥ä¸ä¼æ¥æ¶ click
äºä»¶ï¼èä¸ç¦ç¨çè¾å
¥ä¸ä¼é表åæäº¤ã
夿³¨ï¼ è½ç¶è§è䏿²¡æè¦æ±ï¼ä½ Firefox é»è®¤ä¼å¨ä¸åç页é¢å è½½ä¸ä¿æ <input>
ç卿ç¦ç¨ç¶æãä½¿ç¨ autocomplete
屿§æ¥æ§å¶è¿ä¸ªç¹æ§ã
form
ä¸ä¸ªåç¬¦ä¸²ï¼æå®è¯¥è¾å
¥ä¸ä¹ç¸å
³ç <form>
å
ç´ ï¼å³å
¶è¡¨åææè
ï¼ã妿åå¨è¯¥å±æ§ï¼è¯¥å符串çå¼å¿
é¡»ä¸ç¸åææ¡£ä¸ç <form>
å
ç´ ç id
ç¸åãå¦ææ²¡ææå®è¯¥å±æ§ï¼è¯¥ <input>
å
ç´ ä¸æè¿å
å«å®ç表åç¸å
³ã
form
屿§å¯ä»¥è®©ä½ å¨ææ¡£çä»»ä½å°æ¹æ¾ç½®ä¸ä¸ªè¾å
¥æ§ä»¶ï¼ä½å¨ææ¡£çå
¶ä»å°æ¹å
å«ä¸ä¸ªè¡¨åã
夿³¨ï¼ ä¸ä¸ªè¾å ¥åªè½ä¸ä¸ä¸ªè¡¨åç¸å ³ã
formaction
ä»
对 image
å submit
è¾å
¥ç±»åææãåè§ submit è¾å
¥ç±»åä»ç»ä»¥è·å¾æ´å¤ä¿¡æ¯ã
formenctype
ä»
对 image
å submit
è¾å
¥ç±»åææãåè§ submit è¾å
¥ç±»åä»ç»ä»¥è·å¾æ´å¤ä¿¡æ¯ã
formmethod
ä»
对 image
å submit
è¾å
¥ç±»åææãåè§ submit è¾å
¥ç±»åä»ç»ä»¥è·å¾æ´å¤ä¿¡æ¯ã
formnovalidate
ä»
对 image
å submit
è¾å
¥ç±»åææãåè§ submit è¾å
¥ç±»åä»ç»ä»¥è·å¾æ´å¤ä¿¡æ¯ã
formtarget
ä»
对 image
å submit
è¾å
¥ç±»åææãåè§ submit è¾å
¥ç±»åä»ç»ä»¥è·å¾æ´å¤ä¿¡æ¯ã
height
ä»
对 image
è¾å
¥æé®ææãheight
æ¯è¦æ¾ç¤ºä»£è¡¨å¾å½¢æäº¤æé®çå¾ççé«åº¦ãåè§ imageã
id
å
¨å±å±æ§å¯¹ææå
ç´ ææï¼å
æ¬ææçè¾å
¥ç±»åï¼å®å®ä¹äºä¸ä¸ªå¯ä¸çæ è¯ç¬¦ï¼IDï¼ï¼å¨æ´ä¸ªææ¡£ä¸å¿
é¡»æ¯å¯ä¸çãå
¶ç®çæ¯ä¸ºäºå¨é¾æ¥æ¶è¯å«è¯¥å
ç´ ã该å¼è¢«ç¨ä½ <label>
ç for
屿§çå¼ï¼ä»¥ä¾¿å°æ ç¾ä¸è¡¨åæ§ä»¶è¿æ¥èµ·æ¥ãåè§ <label>
ã
inputmode
对ææå
ç´ é½ææçå
¨å±å¼ï¼å®ä¸ºæµè§å¨æä¾äºä¸ä¸ªæç¤ºï¼è¯´æå¨ç¼è¾è¿ä¸ªå
ç´ æå
¶å
容æ¶è¦ä½¿ç¨çèæé®çé
置类åãå¼å
æ¬ none
ãtext
ãtel
ãurl
ãemail
ãnumeric
ãdecimal
å search
ã
list
ç»äº list
屿§çå¼åºè¯¥æ¯ä½äºåä¸ææ¡£ä¸ç <datalist>
å
ç´ ç {domxref("Element.id", "id")}}ã<datalist>
æä¾äºä¸ä¸ªé¢å®ä¹å¼çå表ï¼åç¨æ·å»ºè®®è¿ä¸ªè¾å
¥ãå表ä¸ä»»ä½ä¸type
ä¸å
¼å®¹çå¼é½ä¸å
æ¬å¨å»ºè®®çé项ä¸ãææä¾ç弿¯å»ºè®®ï¼ä¸æ¯è¦æ±ï¼ç¨æ·å¯ä»¥ä»è¿ä¸ªé¢å®ä¹çå表ä¸éæ©ï¼æè
æä¾ä¸åçå¼ã
å¨ text
ãsearch
ãurl
ãtel
ãemail
ãdate
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
ãrange
å color
ä¸åææã
æ ¹æ®è§èï¼hidden
ãpassword
ãcheckbox
ãradio
ãfile
æä»»ä½æé®ç±»å䏿¯æ list
屿§ã
æ ¹æ®æµè§å¨çä¸åï¼ç¨æ·å¯è½ä¼çå°ä¸ä¸ªå»ºè®®çèªå®ä¹è°è²æ¿ã沿çä¸ä¸ªèå´çè·³å¨æ è®°ãçè³æ¯ä¸ä¸ªå鿩䏿 ·æå¼ä½å 许éå表å¼çè¾å ¥ãæ¥çæµè§å¨å ¼å®¹æ§è¡¨ï¼äºè§£å ¶ä»è¾å ¥ç±»åã
åè§ <datalist>
å
ç´ ã
max
对 date
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
å range
è¾å
¥ç±»åææï¼å®ä¹äºå
许å¼èå´å
çæå¤§å¼ã妿è¾å
¥å°å
ç´ ä¸ç value
è¶
è¿æ¤å¼ï¼å该å
ç´ å°æ æ³éè¿çº¦æéªè¯ã妿 max
屿§çå¼ä¸æ¯æ°åï¼åå
ç´ æ²¡ææå¤§å¼ã
æä¸ç§ç¹æ®æ
åµï¼å¦ææ°æ®ç±»åæ¯å¨ææ§çï¼å¦æ¥æææ¶é´ï¼ï¼max
çå¼å¯è½ä½äº min
çå¼ï¼è¿è¡¨æèå´å¯ä»¥ç¯ç»ï¼ä¾å¦ï¼è¿å
è®¸ä½ æå®ä¸ä¸ªä»æä¸ 10 ç¹å°åæ¨ 4 ç¹çæ¶é´èå´ã
maxlength
对 text
ãsearch
ãurl
ãtel
ãemail
å password
ç±»åææãå®å®ä¹äºç¨æ·å¯ä»¥è¾å
¥å°è¯¥å段ä¸çæå¤§å符æ°ï¼ä»¥ UTF-16 ç ç¹ä¸ºåä½ï¼ãå¿
须为大äºçäº 0
çæ´æ°ãå¦ææªæå® maxlength
ææå®äºæ æçå¼ï¼åè¯¥åæ®µå°æ²¡ææå¤§å¼ãè¿ä¸ªå¼ä¹å¿
须大äºçäº minlength
çå¼ã
å¦æææ¬æ¡ä¸çå符æ°å¤§äº maxlength
UTF-16 ç¼ç åå
é¿åº¦ï¼åè¾å
¥å°æ æ³éè¿çº¦æéªè¯ãé»è®¤æ
åµä¸ï¼æµè§å¨å°é»æ¢ç¨æ·è¾å
¥è¶
è¿ maxlength
屿§ææå®çå¼çå符ãåè§å®¢æ·ç«¯éªè¯ä¸è以äºè§£æ´å¤ä¿¡æ¯ã
min
对 date
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
å range
è¾å
¥ç±»åææï¼å®ä¹äºå
许å¼èå´å
çæå°å¼ã妿è¾å
¥å°å
ç´ ç value
å°äºæ¤å¼ï¼å该å
ç´ å°æ æ³éè¿çº¦æéªè¯ã妿 min
æå®çå¼ä¸æ¯æ°åï¼åè¾å
¥æ²¡ææå°å¼ã
该å¼å¿
é¡»å°äºæçäº max
屿§çå¼ã妿 min
屿§åå¨ä½æ²¡ææå®ææ æï¼åä¸åºç¨ min
å¼ã妿 min
屿§ææï¼å¹¶ä¸é空å¼å°äº min
屿§æå
许çæå°å¼ï¼çº¦æéªè¯å°é»æ¢è¡¨åæäº¤ãåè§å®¢æ·ç«¯éªè¯ä¸è以è·åæ´å¤ä¿¡æ¯ã
æä¸ç§ç¹æ®æ
åµï¼å¦ææ°æ®ç±»åæ¯å¨ææ§çï¼å¦æ¥æææ¶é´ï¼ï¼min
çå¼å¯è½é«äº max
çå¼ï¼è¿è¡¨æèå´å¯ä»¥ç¯ç»ï¼ä¾å¦ï¼è¿å
è®¸ä½ æå®ä¸ä¸ªä»æä¸ 10 ç¹å°åæ¨ 4 ç¹çæ¶é´èå´ã
minlength
对 text
ãsearch
ãurl
ãtel
ãemail
å password
ç±»åææãå®å®ä¹äºç¨æ·å¯ä»¥è¾å
¥å°è¯¥å段ä¸çæå°å符æ°ï¼ä»¥ UTF-16 ç ç¹ä¸ºåä½ï¼ã该å¼å¿
é¡»æ¯å°äºçäº maxlength
æå®çå¼çéè´æ´æ°å¼ãå¦ææªæå® minlength
ææå®äºæ æçå¼ï¼åè¯¥åæ®µå°æ²¡ææå°å¼ã
妿è¾å
¥åæ®µçææ¬é¿åº¦å°äº minlength
UTF-16 代ç åå
çé¿åº¦ï¼è¾å
¥å°æ æ³éè¿çº¦æéªè¯ï¼é»æ¢è¡¨åæäº¤ãåè§å®¢æ·ç«¯éªè¯ä¸è以äºè§£æ´å¤ä¿¡æ¯ã
multiple
å¦æè®¾ç½®äºå¸å°å¼ multiple
屿§ï¼æå³çç¨æ·å¯ä»¥å¨çµåé®ä»¶é¨ä»¶ä¸è¾å
¥éå·åéççµåé®ä»¶å°åï¼æè
å¯ä»¥éè¿ file
è¾å
¥éæ©å¤ä¸ªæä»¶ãåè§ email å file è¾å
¥ç±»åã
name
ä¸ä¸ªæå®è¾å ¥æ§ä»¶åç§°çå符串ãå½è¡¨åæ°æ®è¢«æäº¤æ¶ï¼è¿ä¸ªååä¼åæ§ä»¶çå¼ä¸èµ·æäº¤ã
é常æ name
ç使¯ä¸ä¸ªå¿
éç屿§ï¼å³ä½¿å®ä¸æ¯ï¼ã妿ä¸ä¸ªè¾å
¥æ²¡ææå® name
ï¼æè
name
æ¯ç©ºçï¼é£ä¹è¿ä¸ªè¾å
¥çå¼å°±ä¸ä¼å表åä¸èµ·æäº¤ï¼ç¦ç¨çæ§ä»¶ãæªéä¸çåéæé®ãæªéä¸çå¤éæ¡åéç½®æé®ä¹ä¸ä¼è¢«åéã
èèè¿ä¸¤ä¸ªç¹æ®æ åµï¼
_charset_
ï¼å¦æè¢«ç¨ä½ hidden ç±»åç <input>
å
ç´ çåç§°ï¼è¯¥è¾å
¥ç value
ä¼è¢«ç¨æ·ä»£çèªå¨è®¾ç½®ä¸ºæäº¤è¡¨åæ¶ä½¿ç¨çå符ç¼ç ãisindex
ï¼ç±äºåå²åå ï¼ä¸å
è®¸ä½¿ç¨ isindex
è¿ä¸ªååãname
屿§å¯¹åéæé®çè¡ä¸ºå®å
¨ä¸åã
å¨ä¸ä¸ªååçåéæé®ç»ä¸ï¼ä¸æ¬¡åªè½éä¸ä¸ä¸ªåéæé®ãéæ©è¯¥ç»ä¸çä»»ä½ä¸ä¸ªåéæé®ä¼èªå¨åæ¶å¯¹åä¸ç»ä¸å½å被éä¸çåéæé®çéæ©ãå¦æè¡¨å被æäº¤ï¼è¿ä¸ä¸ªè¢«éä¸çåéæé®çå¼ä¼ååç§°ä¸èµ·è¢«åéã
彿 ç¾è¿å ¥ä¸ç³»åååçåéæé®ç»æ¶ï¼å¦ææä¸ä¸ªè¢«éä¸ï¼å°èç¦è¯¥åéæé®ã妿å®ä»¬æ²¡æææºé¡ºåºåç»ï¼å¦æç»ä¸æä¸ä¸ªè¢«éä¸ï¼å½éå°ç»ä¸ç第ä¸ä¸ªæ¶ï¼æ ç¾è¿å ¥ç»å¼å§ï¼è·³è¿æææ²¡æéä¸çãæ¢å¥è¯è¯´ï¼å¦ææä¸ä¸ªè¢«éä¸ï¼æ ç¾å°±ä¼è·³è¿è¯¥ç»ä¸æªè¢«éä¸çåéæé®ãå¦ææ²¡æå¾éï¼å½å°è¾¾ååç»ä¸ç第ä¸ä¸ªæé®æ¶ï¼å°±ä¼èç¦è¯¥åéæé®ç»ã
䏿¦ç»ä¸çä¸ä¸ªåéæé®æäºç¦ç¹ï¼ä½¿ç¨ç®å¤´é®å°æµè§ææååçåéæé®ï¼å³ä½¿è¿äºåéæé®å¨æºé¡ºåºä¸æ²¡æè¢«åç»ã
妿ä¸ä¸ªè¾å
¥å
ç´ å
·æ name
ï¼è¯¥åç§°æä¸ºå
å«å®ç表åå
ç´ ç HTMLFormElement.elements
屿§ã妿æä¸¤ä¸ª name
åå«è®¾ç½®ä¸º guest
å hat-size
çè¾å
¥å
ç´ ï¼å¯ä»¥ä½¿ç¨å¦ä¸ä»£ç ï¼
let form = document.querySelector("form");
let guestName = form.elements.guest;
let hatSize = form.elements["hat-size"];
æ¤æ®µä»£ç è¿è¡åï¼guestName
å°æä¸º guest
åæ®µç HTMLInputElement
ï¼hatSize
å°æä¸º hat-size
åæ®µç HTMLInputElement
ã
è¦åï¼ é¿å
ç»è¡¨åå
ç´ ä¸ä¸ªä¸è¡¨åå
ç½®å±æ§ç¸å¯¹åºç name
ï¼å ä¸ºè¿æ ·ä½ å°±ä¼ç¨è¿ä¸ªå¯¹ç¸åºè¾å
¥çå¼ç¨æ¥è¦çé¢å®ä¹ç屿§ææ¹æ³ã
pattern
对 text
ãsearch
ãurl
ãtel
ãemail
å password
ç±»åææã为äºä½¿ value
éè¿çº¦æéªè¯ï¼å¿
须满足 pattern
屿§ç»å®çæ£å表达å¼ãå®å¿
é¡»æ¯ RegExp
ç±»åçææ JavaScript æ£å表达å¼ï¼å¹¶ä¸å·²å¨æä»¬çæ£åè¡¨è¾¾å¼æåä¸è¿è¡äºè¯´æï¼å¨ç¼è¯æ£åè¡¨è¾¾å¼æ¶æå®äº 'u'
æ å¿ï¼å æ¤è¯¥æ¨¡å¼è¢«è§ä¸º Unicode 代ç ç¹çåºåï¼è䏿¯ ASCIIãæ¨¡å¼ææ¬å¨å´æ éæå®æ£ææ ã
妿 pattern
屿§åå¨ï¼ä½æ¯æªæå®æ¨¡å¼ææ æï¼åä¸åºç¨ä»»ä½æ£å表达å¼ï¼å¹¶ä¸å°å®å
¨å¿½ç¥æ¤å±æ§ãå¦ææ¨¡å¼å±æ§æ¯ææçï¼å¹¶ä¸è¯¥é空å¼ä¸æ¨¡å¼ä¸å¹é
ï¼çº¦æéªè¯å°é»æ¢è¡¨åæäº¤ã
夿³¨ï¼ å¦æä½¿ç¨äº pattern
屿§ï¼è¦å¨éè¿åç¥ç¨æ·æææçè¾å
¥æ ¼å¼ãä½ å¯ä»¥å
å« title
屿§æ¥è§£é满足模å¼çéæ±è¯´æï¼å¤§å¤æ°æµè§å¨å°å®ä»¬æ¾ç¤ºä¸ºå·¥å
·æç¤ºï¼tooltipï¼ãå¯¹äºæ éç¢æ¥è¯´ï¼è§è§çè§£éæ¯å¿
è¦çï¼å·¥å
·æç¤ºæ¯ä¸ç§æ¹è¿ç¹ã åè§å®¢æ·ç«¯éªè¯ä¸è以äºè§£æ´å¤ä¿¡æ¯ã
placeholder
对 text
ãsearch
ãurl
ãtel
ãemail
ãpassword
å number
ææãplaceholder
屿§å¯åç¨æ·æä¾æå
³è¯¥å段ä¸éè¦ä»ä¹æ ·çä¿¡æ¯çç®çæç¤ºãå®åºè¯¥æ¯ä¸ä¸ªåè¯æçè¯æ¥è¯´æé¢æçæ°æ®ç±»åï¼è䏿¯è¯´ææ§æ¶æ¯ãææ¬ä¸ä¸å¾å
å«åè½¦ç¬¦ææ¢è¡ç¬¦ãä¾å¦ï¼æä¸ªå段éè¦æ¶éç¨æ·çå§æ°ï¼å
¶æ ç¾ä¸ºâFirst Nameâï¼ä¸ä¸ªéåçå 使åå¯è½æ¯âå¦ Mustafaâã
夿³¨ï¼ placeholder
屿§å¨è¯ä¹ä¸ä¸å¦å
¶ä»è§£é表åçæ¹å¼æç¨ï¼èä¸ä¼å¯¹ä½ çå
å®¹é æææ³ä¸å°çææ¯é®é¢ãåè§æ ç¾ä»¥è·å¾æ´å¤ä¿¡æ¯ã
readonly
ä¸ä¸ªå¸å°å±æ§ï¼å¦æåå¨ï¼åè¡¨ç¤ºè¯¥åæ®µä¸è½ç±ç¨æ·ç¼è¾ãreadonly
屿§æ¯æ text
ãsearch
ãurl
ãtel
ãemail
ãdate
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
å password
è¾å
¥ç±»åã
åè§ HTML 屿§ï¼readonly
以äºè§£æ´å¤ä¿¡æ¯ã
required
required
æ¯ä¸ä¸ªå¸å°å±æ§ï¼å¦æåå¨ï¼åè¡¨ç¤ºç¨æ·å¿
é¡»å¨æäº¤è¡¨åä¹åæå®ä¸ä¸ªé空å¼ãrequired
屿§æ¯æ text
ãsearch
ãurl
ãtel
ãemail
ãdate
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
ãpassword
ãcheckbox
ãradio
å file
è¾å
¥ç±»åã
åè§å®¢æ·ç«¯éªè¯å HTML 屿§ï¼required
以äºè§£æ´å¤ä¿¡æ¯ã
size
对 email
ãpassword
ãtel
ãurl
å text
ææãsize
屿§æç¤ºæ¾ç¤ºè¾å
¥æ§ä»¶çå¤å°ãåºæ¬ä¸å建äºä¸è®¾ç½® CSS width
屿§ç¸åçç»æï¼ä½æä¸äºç¹æ®æ§ï¼å¼çå
·ä½åä½åå³äºè¾å
¥ç±»åãå¯¹äº password
å text
ï¼å®æ¯å符æ°éï¼æ em
åä½å¤§å°ï¼ï¼é»è®¤å¼æ¯ 20
ã对äºå
¶ä»æ
åµï¼æ¯åç´ å¼ï¼æ px
åä½å¤§å°ï¼ãCSS width
çä¼å
级ä¼é«äº size
屿§ã
src
ä»
对 image
è¾å
¥æé®ææãæå®å°è¦å¨æäº¤æé®ä¸æ¾ç¤ºçå¾åç URLãåè§ image è¾å
¥ç±»åã
step
对 date
ãmonth
ãweek
ãtime
ãdatetime-local
ãnumber
å range
è¾å
¥ç±»åææãstep
屿§æå®äºå¼å¿
须满足çç²åº¦ã
å¦ææ²¡ææç¡®å å«å®ï¼
step
对äºç±»å为 number
å range
çé»è®¤å¼ä¸º 1ãstep
å¼ï¼è¯·æ¥é
ç¸å
³ç页é¢ä»¥è·åï¼date
ãdatetime-local
ãmonth
ãtime
å week
ãå¼å¿
须为ä¸ä¸ªæ£æ°ï¼æ´æ°æå°æ°ï¼æç¹æ®å¼ any
ï¼æå³ç䏿å®ä»»ä½æ¥è¿å¼ï¼ä»»æå¼é½å¯ä»¥æ¥åï¼é¤å
¶ä»å¶çº¦å ç´ å¦ min
æ max
ä¹å¤ï¼ï¼ã
å¦ææ²¡ææç¡®è®¾ç½® any
ï¼number
ãæ¥æ/æ¶é´è¾å
¥ç±»åå range
è¾å
¥ç±»åçææå¼çäºæ¥è¿çåºç¡ââmin
å¼åæ¥è¿å¼çå¢éï¼å¦ææå®çè¯ï¼æé«ä¸ºmax
å¼ã
ä¾å¦ï¼å¦æåå¨è¿æ ·ä¸ä¸ªå
ç´ <input type="number" min="10" step="2">
ï¼é£ä¹ä»»ä½å¤§äºçäº 10
çå¶æ´æ°é½æ¯ææçã妿çç¥ï¼<input type="number">
ï¼ï¼ä»»ä½æ´æ°é½ææï¼ä½æµ®ç¹æ°ï¼å¦ 4.2
ï¼æ æï¼å 为 step
é»è®¤ä¸º1
ã为äºä½¿ 4.2
ææï¼step
å¿
须被设置为 any
ã0.1ã0.2 æä»»ä½ min
å¼ä»¥ .2
ç»å°¾çæ°åï¼ä¾å¦ <input type="number" min="-5.2">
ã
夿³¨ï¼ å½ç¨æ·è¾å
¥çæ°æ®ä¸ç¬¦åæ¥è¿é
ç½®æ¶ï¼è¯¥å¼å¨çº¦æéªè¯ä¸è¢«è®¤ä¸ºæ¯æ æçï¼å°å¹é
:invalid
伪类ã åè§å®¢æ·ç«¯éªè¯ä»¥è·åæ´å¤ä¿¡æ¯ã
tabindex
对ææå ç´ ææçå ¨å±å±æ§ï¼å æ¬ææçè¾å ¥ç±»åï¼æ¯ä¸ä¸ªæ´æ°å±æ§ï¼è¡¨ç¤ºè¯¥å ç´ å¦æåä¸é¡ºåºé®ç导èªï¼æ¯å¦å¯ä»¥æ¥åè¾å ¥ç¦ç¹ï¼å¯èç¦ï¼ãç±äºé¤äºéèç±»åçè¾å ¥å¤ï¼ææçè¾å ¥ç±»å齿¯å¯èç¦çï¼è¿ä¸ªå±æ§ä¸åºè¯¥ç¨å¨è¡¨åæ§ä»¶ä¸ï¼å ä¸ºè¿æ ·åéè¦ç®¡çææ¡£ä¸ææå ç´ çèç¦é¡ºåºï¼å¦æè®¾ç½®é误ï¼å°±æå¯è½æå®³å¯ç¨æ§åæ éç¢æ§ã
title
对ææå
ç´ ææçå
¨å±å±æ§ï¼å
æ¬ææçè¾å
¥ç±»åï¼å
å«ä¸ä¸ªä»£è¡¨ä¸å®æå±çå
ç´ ç¸å
³çå¨è¯¢ä¿¡æ¯çææ¬ãè¿æ ·çä¿¡æ¯é常以工å
·æç¤ºçå½¢å¼åç°ç»ç¨æ·ï¼ä½ä¸å¿
è¦ï¼ãæ é¢ä¸åºä½ä¸ºè¡¨åæ§ä»¶ç¨éç主è¦è§£éãç¸åï¼å¯ä»¥ä½¿ç¨ <label>
å
ç´ ï¼å
¶ for
屿§è®¾ç½®ä¸ºè¡¨åæ§ä»¶ç id
屿§ãåè§ä¸é¢çæ ç¾ã
type
ä¸ä¸ªåç¬¦ä¸²ï¼æå®è¦æ¸²æçæ§ä»¶çç±»åãä¾å¦ï¼è¦å建ä¸ä¸ªå¤éæ¡ï¼ä½¿ç¨ checkbox
çå¼ã妿çç¥ï¼ææå®ä¸ä¸ªæªç¥å¼ï¼ï¼å使ç¨è¾å
¥ç±»å text
ï¼å建ä¸ä¸ªçº¯ææ¬è¾å
¥å段ã
å 许çå¼åå¨äºä¸æ¹ç Input ç±»åä¸ã
value
è¾å
¥æ§ä»¶çå¼ãå½å¨ HTML 䏿宿¶ï¼è¿æ¯åå§å¼ãä»é£æ¶èµ·ï¼å®å¯ä»¥å¨ä»»ä½æ¶åç¨ JavaScript 访é®ç¸åºç HTMLInputElement
对象ç value
屿§ï¼ç¨äºæ¹åææ£ç´¢ãvalue
屿§æ»æ¯å¯éçï¼ä¸è¿å¯¹äº checkbox
ãradio
å hidden
æ¥è¯´ï¼åºè¯¥è¢«è®¤ä¸ºæ¯å¿
é¡»çã
width
ä»
对 image
è¾å
¥æé®ææãwidth
æ¯åç°å¨å¾çæäº¤æé®ä¸çå¾ç宽度ãåè§ image è¾å
¥ç±»åã
以ä¸éæ å屿§å¨æäºæµè§å¨ä¸å¯ä»¥ä½¿ç¨ãä¸è¬å°ï¼é¤éæ æ³å®ç°ä½ æéè¦çåè½ï¼å¦åä¸è¦ä½¿ç¨å®ä»¬ã
屿§ æè¿°autocorrect
æå® autocorrect ç¶æçå符串ï¼ç¶æä¸º code>on æ off
ãä»
Safari éç¨ã incremental
æ¯å¦éå¤åé search
äºä»¶ï¼ä»¥ä¾¿å¨ç¨æ·ä»å¨ç¼è¾åæ®µå¼æ¶æ´æ°å®æ¶æç´¢ç»æãWebKit å Blink éç¨ï¼SafariãChromeãOpera çï¼ã mozactionhint
å½ç¨æ·å¨ç¼è¾åæ®µæ¶æä¸é®çç Enter æ Return 鮿¶ï¼æéè¦è¿è¡çå¨ä½çå符串表示ï¼è¿ç¨äºå³å®èæé®çä¸é£ä¸ªé®çåéçæ ç¾ã
å·²å¼ç¨ï¼è¯·ä½¿ç¨ enterkeyhint
æ¿ä»£ã
orient
设置èå´æ»åçåç°æ¹åãä»
Firefox éç¨ã results
䏿èåæ¾ç¤ºçæå¤§æ¥æ¾ç»ææ°éãä»
Safari éç¨ã webkitdirectory
ä¸ä¸ªå¸å°å¼ï¼è¡¨ç¤ºæ¯å¦åªå
è®¸ç¨æ·éæ©ä¸ä¸ªç®å½ï¼æå¤ä¸ªç®å½ï¼å¦æåæ¶åå¨ multiple
屿§ï¼ã
autocorrect
éæ å
ï¼ä» Safari éç¨ï¼ãä¸ä¸ªå符串ï¼è¡¨ç¤ºæ¯å¦å¨ç¨æ·ç¼è¾è¯¥åæ®µæ¶æ¿æ´»èªå¨æ´æ£ãå 许çå¼ä¸ºï¼
on
å¯ç¨èªå¨æ´æ£ï¼å¦æé ç½®äºæåæ¿æ¢ï¼åä¸åå¤çå®ä»¬ã
off
ç¦ç¨èªå¨æ´æ£åæåæ¿æ¢ã
incremental
éæ å
å¸å°å±æ§ incremental
æ¯ WebKit å Blink çæ©å±ï¼æä»¥ SafariãOperaãChrome ç齿¯æï¼ï¼å¦æåå¨çè¯ï¼å°±ä¼åè¯ç¨æ·ä»£çå°è¾å
¥ä½ä¸ºå®æ¶æç´¢å¤çãå½ç¨æ·ç¼è¾è¯¥å段ç弿¶ï¼ç¨æ·ä»£çå° search
äºä»¶åéå°ä»£è¡¨æç´¢æ¡ç HTMLInputElement
对象ãè¿ä½¿å¾ä½ ç代ç è½å¤å¨ç¨æ·ç¼è¾æç´¢æ¶å®æ¶æ´æ°æç´¢ç»æã
å¦ææ²¡ææå® incremental
屿§ï¼åä»
å½ç¨æ·æç¡®åèµ·æç´¢ï¼å¦æä¸é®çä¸ Enter æ Returnï¼æ¶ï¼æä¼åé search
äºä»¶ã
search
äºä»¶æ¯ééçï¼å æ¤å®çåéé¢çä¸ä¼è¶
è¿å®æ½å®ä¹çé´éã
orient
éæ å
类似äºå½±å <progress>
å <meter>
å
ç´ çéæ å CSS 屿§ -moz-orientï¼orient
屿§å®ä¹èå´æ»åçæ¹åãå¼å
æ¬ horizontal
ï¼ä»£è¡¨èå´æ»åæ°´å¹³åç°ï¼å vertical
ï¼ä»£è¡¨èå´æ»ååç´åç°ã
results
éæ å
åªæ Safari æ¯æç results
屿§æ¯ä¸ä¸ªæ°å¼ï¼å¯ä»¥è®©ä½ è¦ç <input>
å
ç´ åçæä¾çå
åæç´¢æ¥è¯¢ä¸æèå䏿¾ç¤ºçæå¤§æ¡ç®æ°ã
该å¼å¿ é¡»æ¯ä¸ä¸ªéè´çåè¿å¶æ°åãå¦ææ²¡ææä¾ï¼æè æä¾äºä¸ä¸ªæ æçå¼ï¼åä½¿ç¨æµè§å¨çé»è®¤æå¤§æ¡ç®æ°ã
webkitdirectory
éæ å
å¸å°å±æ§ webkitdirectory
妿åå¨ï¼è¡¨ç¤ºå¨æä»¶éåçé¢ä¸ï¼åªæç®å½å¯ä¾ç¨æ·éæ©ãåè§ HTMLInputElement.webkitdirectory
以äºè§£æ´å¤ç»èåä¾åã
è½ç¶æååªä¸ºåºäº WebKit çæµè§å¨å®ç°ï¼ä½ webkitdirectory
ä¹å¯ä»¥å¨ Microsoft Edge 以å Firefox 50 åæ´é«çæ¬ä¸ä½¿ç¨ãç¶èï¼å°½ç®¡å®æç¸å¯¹å¹¿æ³çæ¯æï¼å®ä»ç¶ä¸æ¯æ åçï¼é¤éä½ æ²¡æå
¶ä»éæ©ï¼å¦åä¸åºè¯¥ä½¿ç¨ã
以䏿¹æ³ç± DOM ä¸ä»£è¡¨ <input>
å
ç´ ç HTMLInputElement
æ¥å£æä¾ãè¿æä¸äºæ¹æ³æ¯ç±ç¶æ¥å£ HTMLElement
ãElement
ãNode
å EventTarget
æä¾çã
checkValidity()
妿å
ç´ çå¼éè¿äºæææ§æ£æ¥ï¼è¿å true
ï¼å¦åï¼è¿å false
å¹¶å¨è¯¥å
ç´ ä¸è§¦å invalid
äºä»¶ã
reportValidity()
妿å
ç´ çå¼éè¿äºæææ§æ£æ¥ï¼è¿å true
ï¼å¦åï¼è¿å false
å¹¶å¨è¯¥å
ç´ ä¸è§¦å invalid
äºä»¶ï¼å¦æäºä»¶æ²¡æåæ¶ï¼å°é®é¢æ¥åç»ç¨æ·ã
select()
妿 <input>
å
ç´ ä¸çå
容å¯éæ©ï¼åéæ©å
¶ä¸çå
¨é¨å
容ãå¯¹äºæ²¡æå¯ä¾éæ©çæåå
容çå
ç´ ï¼å¦å¯è§åé¢è²éæ©å¨ææ¥åæ¥æè¾å
¥ï¼ï¼è¿ä¸ªæ¹æ³ä¸åä»»ä½äºæ
ã
setCustomValidity()
妿è¾å ¥å ç´ çå¼ä¸åæ³ï¼è®¾ç½®æ¾ç¤ºçèªå®ä¹ä¿¡æ¯ã
setRangeText()
å°è¾å
¥å
ç´ ä¸æå®çå符èå´çå
容设置为ä¸ä¸ªç»å®çå符串ãselectMode
åæ°å¯ä»¥æ§å¶ç°æå
容å¦ä½è¢«å½±åã
setSelectionRange()
å¨ä¸ä¸ªææ¬è¾å ¥å ç´ ä¸éæ©æå®çå符èå´ã对ä¸ä»¥ææ¬è¾å ¥å段形å¼åºç°çè¾å ¥æ²¡æä»»ä½ä½ç¨ã
stepDown()
é»è®¤æ åµä¸ï¼å°ä¸ä¸ªæ°åè¾å ¥çå¼åå° 1ï¼æåå°æå®çå使°éã
stepUp()
é»è®¤æ åµä¸ï¼å°ä¸ä¸ªæ°åè¾å ¥çå¼å¢å 1ï¼æå¢å æå®çå使°éã
è¾å ¥å ç´ ä½ä¸ºè¢«æ¿æ¢çå ç´ ï¼æä¸äºåè½ä¸éç¨äºé表åå ç´ ãæä¸äº CSS éæ©å¨å¯ä»¥æ ¹æ®è¡¨åæ§ä»¶ç UI ç¹å¾ä¸é¨é对å®ä»¬ï¼ä¹è¢«ç§°ä¸º UI 伪类ãè¾å ¥å ç´ ä¹å¯ä»¥ç¨å±æ§éæ©å¨æç±»åå®ä½ãæä¸äºå±æ§ä¹æ¯ç¹å«æç¨çã
UI 伪类 ä¸<input>
å
ç´ é常ç¸å
³çæ é¢ï¼ 伪类 æè¿° :enabled
ä»»ä½å½åå¯ç¨çå
ç´ ï¼å¯ä»¥è¢«æ¿æ´»ï¼éæ©ãç¹å»ãè¾å
¥çï¼ææ¥åç¦ç¹ï¼ä¹æä¸ä¸ªç¦ç¨ç¶æï¼å¨è¿ä¸ªç¶æä¸ï¼å®ä¸è½è¢«æ¿æ´»ææ¥åç¦ç¹ã :disabled
ä»»ä½å½åç¦ç¨çå
ç´ é½æä¸ä¸ªå¯ç¨çç¶æï¼è¿æå³ç妿宿²¡æè¢«ç¦ç¨ï¼å®å¯ä»¥è¢«æ¿æ´»ï¼éæ©ãç¹å»ãè¾å
¥ççï¼ææ¥åç¦ç¹ã :read-only
ä¸è½è¢«ç¨æ·ç¼è¾çå
ç´ ã :read-write
å¯ä»¥è¢«ç¨æ·ç¼è¾çå
ç´ ã :placeholder-shown
å½åæ¾ç¤º placeholder
æåçå
ç´ ï¼å
æ¬æ placeholder
æ¾ç¤ºï¼å°æªæ¥æå¼ç <input>
å <textarea>
å
ç´ ã :default
å¨ä¸ç»ç¸å
³å
ç´ ä¸å±äºé»è®¤ç表åå
ç´ ãå¹é
checkbox å radio å¨é¡µé¢å è½½ææ¸²ææ¶è¢«éä¸çè¾å
¥ç±»åã :checked
å¹é
å½å被éä¸ç checkbox å radio è¾å
¥ç±»åï¼ä»¥åå½å被éä¸ç <select>
ä¸ç <option>
ï¼ã :indeterminate
indeterminate 屿§è¢« JavaScript 设置为çç checkbox å
ç´ ï¼è¡¨å䏿æå
·æç¸ååç§°å¼çåéæé®è¢«åæ¶éä¸ç radio å
ç´ ï¼ä»¥åå¤äºä¸ç¡®å®ç¶æç <progress>
å
ç´ ã :valid
å¯ä»¥åºç¨çº¦æéªè¯çè¡¨åæ§ä»¶ï¼å¹¶ä¸å½åæ¯ææçã :invalid
åºç¨äºçº¦ææ¡ä»¶éªè¯çè¡¨åæ§ä»¶ï¼å¹¶ä¸å½åæ¯æ æçãå¹é
ä¸ä¸ªè¡¨åæ§ä»¶ï¼å®çå¼ä¸å®ç屿§è®¾ç½®ççº¦ææ¡ä»¶ä¸ä¸è´ï¼å¦ required
ãpattern
ãstep
å max
ã :in-range
ä¸ä¸ªé空çè¾å
¥ï¼å
¶å½åå¼å¨ min
å max
屿§ä»¥å step
æå®çèå´éå¶å
ã :out-of-range
ä¸ä¸ªé空çè¾å
¥ï¼å
¶å½åå¼ä¸å¨ min
å max
屿§ä»¥å step
æå®çèå´éå¶å
ã :required
æ required
屿§è®¾ç½®ç <input>
ã<select>
æ <textarea>
å
ç´ ãåªå¹é
å¯ä»¥è¢« required çå
ç´ ï¼ä¸å¹é
ä¸è½è¢« required çå
ç´ ã :optional
没æ required
屿§è®¾ç½®ç <input>
ã<select>
æ <textarea>
å
ç´ ãåªå¹é
å¯ä»¥è¢« required çå
ç´ ï¼ä¸å¹é
ä¸è½è¢« required çå
ç´ ã :blank
没æå¼ç <input>
å <textarea>
å
ç´ ã :user-invalid
ä¸ :invalid
ç¸ä¼¼ï¼ä½æ¯å¨å¤±ç¦çæ
åµä¸æ¿æ´»ãå¹é
æ æçè¾å
¥ï¼ä½åªå¨ç¨æ·äº¤äºä¹åï¼ä¾å¦å
³æ³¨è¯¥æ§ä»¶ã离å¼è¯¥æ§ä»¶æè¯å¾æäº¤å
嫿 ææ§ä»¶ç表åã 伪类示ä¾
æä»¬å¯ä»¥æ ¹æ®å¤éæ¡æ¯å¦è¢«é䏿¥ä¸ºå¤éæ¡çæ ç¾æ·»å æ ·å¼ãå¨è¿ä¸ªä¾åä¸ï¼æä»¬å¯¹ç´§è·å¨å¤éè¾å
¥ä¹åç color
å font-weight
ç <label>
è¿è¡æ ·å¼è®¾ç½®ã妿 input
没æéä¸ï¼æä»¬æ²¡æåºç¨ä»»ä½æ ·å¼ã
<input id="checkboxInput" type="checkbox" />
<label for="checkboxInput">忢å¤éæ¡ç¶æ</label>
input:checked + label {
color: red;
font-weight: bold;
}
屿§éæ©å¨
使ç¨å±æ§éæ©å¨ï¼å¯ä»¥æ ¹æ®è¡¨åæ§ä»¶ç type
æ¥éå®ä¸åç±»åçè¡¨åæ§ä»¶ãCSS 屿§éæ©å¨åªéæ ¹æ®ä¸ä¸ªå±æ§çå卿ä¸ä¸ªç»å®å±æ§ç弿¥å¹é
å
ç´ ã
/* å¹é
å¯ç è¾å
¥ */
input[type="password"] {
}
/* å¹é
åæ³å¼éå¶å¨ä¸ä¸ªèå´å
çè¡¨åæ§ä»¶ */
input[min][max] {
}
/* å¹é
嫿 pattern 屿§çè¡¨åæ§ä»¶ */
input[pattern] {
}
::placeholder
é»è®¤æ
åµä¸ï¼å ä½ç¬¦ææ¬çå¤è§æ¯åéæææµ
ç°è²ã::placeholder
伪å
ç´ æ¯è¾å
¥ç placeholder
ææ¬ãå¯ä»¥ä½¿ç¨æéç CSS 屿§åé为å
¶èµäºæ ·å¼ã
::placeholder {
color: blue;
}
åªæéç¨äº ::first-line
伪å
ç´ ç CSS 屿§åéå¯ä»¥å¨éæ©å¨ä¸ä½¿ç¨ ::placeholder
çè§åã
appearance
屿§å¯ä»¥å°ï¼å ä¹ï¼ä»»ä½å
ç´ æ¾ç¤ºä¸ºåºäºæä½ç³»ç»ä¸»é¢çå¹³å°åçæ ·å¼ï¼ä¹å¯ä»¥ç¨ none
å¼å»é¤ä»»ä½å¹³å°åçæ ·å¼ã
ä½ å¯ä»¥ç¨ div {appearance: radio;}
使 <div>
çèµ·æ¥åä¸ä¸ªåéæé®ï¼æè
ç¨ [type="radio"] {appearance: checkbox;}
使ä¸ä¸ªåéçèµ·æ¥åä¸ä¸ªå¤éæ¡ï¼ä½ä¸è¦è¿æ ·åã
设置 appearance: none
ç§»é¤äºå¹³å°åççè¾¹æ¡ï¼ä½æ²¡æç§»é¤å
¶åè½ã
ä¸ä¸ªä¸é¨éå¯¹ææ¬è¾å
¥ç¸å
³å
ç´ ç屿§æ¯ CSS caret-color
屿§ï¼å®å¯ä»¥è®©ä½ 设置ç¨äºç»å¶ææ¬è¾å
¥å
æ çé¢è²ï¼
<label for="textInput">请注æçº¢è²å
æ ï¼</label>
<input id="textInput" class="custom" size="32" />
CSS
input.custom {
caret-color: red;
font:
16px "Helvetica",
"Arial",
"sans-serif";
}
ç»æ object-position å object-fit
å¨æäºæ
åµä¸ï¼é常æ¶åéææ¬è¾å
¥åä¸é¨ççé¢ï¼ï¼<input>
å
ç´ æ¯ä¸ä¸ªå¯æ¿æ¢å
ç´ ãå½å®ä¸ºæ¿æ¢å
ç´ æ¶ï¼è¯¥å
ç´ å¨å
¶æ¡æ¶å
çä½ç½®å大å°å¯ä»¥ä½¿ç¨ CSS object-position
å object-fit
屿§æ¥è°æ´ã
éè¦æ ç¾æ¥å°è¾
婿§ææ¬ä¸ <input>
è系起æ¥ã<label>
å
ç´ æä¾äºå
³äºä¸ä¸ªè¡¨ååæ®µçéåçè§£éä¿¡æ¯ï¼é¤äºä»»ä½å¸å±æ¹é¢çèèï¼ãä½¿ç¨ <label>
è§£éè¾å
¥è³ <input>
æ <textarea>
çå
å®¹æ»æ¯å¥½çã
<input>
å <label>
å
ç´ çè¯ä¹é
对对äºå±å¹é
读å¨çè¾
å©ææ¯æ¯å¾æç¨çãéè¿ä½¿ç¨ <label>
ç for
屿§å¯¹å®ä»¬è¿è¡é
对ï¼å¯ä»¥å°æ ç¾ä¸è¾å
¥ç»åèµ·æ¥ï¼è®©å±å¹é
è¯»å¨æ´ç²¾ç¡®å°æè¿°è¾å
¥ã
ä»
ä»
å¨ <input>
å
ç´ æè¾¹æçº¯ææ¬æ¯ä¸å¤çãç¸åï¼å¯ç¨æ§åæ éç¢æ§è¦æ±å
å«é弿æ¾å¼ <label>
ï¼
<!-- éæ éç¢ç -->
<p>è¾å
¥ä½ çååï¼<input id="name" type="text" size="30" /></p>
<!-- é弿 ç¾ -->
<p>
<label>è¾å
¥ä½ çååï¼<input id="name" type="text" size="30" /></label>
</p>
<!-- æ¾å¼æ ç¾ -->
<p>
<label for="name">è¾å
¥ä½ çååï¼</label>
<input id="name" type="text" size="30" />
</p>
第ä¸ä¸ªç¤ºä¾æ²¡ææ éç¢æ§ï¼æç¤ºå <input>
å
ç´ æ²¡æå
³ç³»ã
é¤äºæ éç¢åç§°å¤ï¼æ ç¾è¿æä¾äºä¸ä¸ªæ´å¤§çâå½ä¸âåºåï¼ä¾é¼ æ å触æ¸å±ç¨æ·ç¹å»æè§¦æ¸ãéè¿å° <label>
å <input>
é
对ï¼ç¹å»ä»»ä½ä¸ä¸ªå
ç´ å°èç¦ <input>
å
ç´ ãå¦æä½ ä½¿ç¨çº¯ææ¬æ¥ç»ä½ çè¾å
¥å
ç´ ä½âæ ç¾âï¼å°ä¸ä¼äº«åå°ä»¥ä¸ç¹æ§ãå°æ¿æ´»åºçæç¤ºé¨åç¨äºè¾å
¥ï¼å¯¹æè¿å¨æ§å¶æ¡ä»¶çäººæ¯æå¸®å©çã
ä½ä¸º web å¼åè ï¼æä»¬æ°¸è¿ä¸è¦åå®ä½¿ç¨è ç¥éææçäºæ ãä½¿ç¨ web ç人ç夿 ·æ§ââå¯è½å»¶ä¼¸å°ä½ çç½ç«ä¸ââå®é ä¸ä¿è¯äºä½ çç½ç«çä¸äºè®¿é®è å¨æç»´è¿ç¨å/ææ åµä¸ä¼æä¸äºååï¼å¯¼è´ä»ä»¬å¨æ²¡ææç¡®åéå½çæ ç¾çæ åµä¸å¯¹ä½ ç表åæé常ä¸åçè§£éã
å ä½ç¬¦ä¸å ·ææ éç¢æ§placeholder
屿§å¯ä»¥è®©ä½ æå®å¨ <input>
å
ç´ çå
容åºåæ¬èº«ä¸ºç©ºæ¶åºç°çææ¬ãä¸åºè¯¥ä¾é å ä½ç¬¦å»ç解表åãå®ä¸æ¯ä¸ä¸ªæ ç¾ï¼ä¹ä¸åºè¯¥è¢«ç¨æ¥æ¿ä»£ãå ä½ç¬¦æ¯ç¨æ¥æç¤ºè¾å
¥çå¼åºè¯¥æ¯ä»ä¹æ ·åï¼è䏿¯è§£éã
ä¸ä»
å±å¹é
è¯»å¨æ æ³è®¿é®å ä½ç¬¦ï¼èä¸ä¸æ¦ç¨æ·å¨è¡¨åæ§ä»¶ä¸è¾å
¥ä»»ä½ææ¬ï¼æè
å¦æè¡¨åæ§ä»¶å·²ç»æä¸ä¸ªå¼ï¼å ä½ç¬¦å°±ä¼æ¶å¤±ãå
·æèªå¨é¡µé¢ç¿»è¯åè½çæµè§å¨å¨ç¿»è¯æ¶å¯è½ä¼è·³è¿å±æ§ï¼è¿æå³ç placeholder
å¯è½ä¸ä¼è¢«ç¿»è¯ã
夿³¨ï¼ å°½å¯è½ä¸è¦ä½¿ç¨ placeholder
屿§ã妿éè¦æ è®° <input>
å
ç´ ï¼è¯·ä½¿ç¨ <label>
å
ç´ ã
è¦åï¼ å®¢æ·ç«¯éªè¯æ¯æç¨çï¼ä½å®å¹¶ä¸è½ä¿è¯æå¡å¨ä¼æ¶å°ææçæ°æ®ãå¦ææ°æ®å¿
é¡»æ¯ç¹å®çæ ¼å¼ï¼æ»æ¯åºè¯¥å¨æå¡å¨ç«¯è¿è¡éªè¯ï¼å¦ææ ¼å¼æ æï¼åè¿åä¸ä¸ª 400
HTTP ååºã
é¤äºå¦ä¸æ UI 伪类é¨åæè¿°ï¼ä½¿ç¨ CSS æ ¹æ® :valid
æ :invalid
æ¯ä¸ªè¾å
¥çå½åç¶ææ¥è®¾è®¡è¾å
¥çæ ·å¼ä¹å¤ï¼æµè§å¨è¿å¨ï¼è¯å¾ï¼æäº¤è¡¨åæ¶æä¾äºå®¢æ·ç«¯éªè¯ãå¨è¡¨åæäº¤æ¶ï¼å¦ææä¸ä¸ªè¡¨åæ§ä»¶æ²¡æéè¿çº¦æéªè¯ï¼æ¯æçæµè§å¨å°å¨ç¬¬ä¸ä¸ªæ æçè¡¨åæ§ä»¶ä¸æ¾ç¤ºä¸ä¸ªé误信æ¯ï¼æ ¹æ®éè¯¯ç±»åæ¾ç¤ºä¸ä¸ªé»è®¤ä¿¡æ¯ï¼æè
ç±ä½ 设置çä¿¡æ¯ã
æäºè¾å
¥ç±»ååå
¶ä»å±æ§å¯¹ç¹å®è¾å
¥çææå¼è¿è¡äºéå¶ãä¾å¦ï¼<input type="number" min="2" max="10" step="2">
æå³çåªææ°å 2ã4ã6ã8 æ 10 ææãæäºé误å¯è½åçï¼å½å¼å°äº 2 æ¶ä¼åç rangeUnderflow
é误ï¼å¼å¤§äº 10 æ¶ä¼åç rangeOverflow
é误ï¼å½å¼å¨ 2 è³ 10 ä¹é´ï¼ä½ä¸æ¯å¶æ°ï¼ä¸æ»¡è¶³ step
屿§çéæ±ï¼æ¶ä¼åç stepMismatch
é误ï¼å¦æå¼ä¸æ¯ä¸ä¸ªæ°åæ¶ä¼åç typeMismatch
é误ã
对äºå¯è½çå¼åæ¯å¨ææ§çè¾å
¥ç±»åï¼ä¹å°±æ¯è¯´ï¼å¨å¯è½çæé«å¼æ¶ï¼å¼ä¼ç»åå¼å§è䏿¯ç»æï¼ï¼max
å min
屿§ç弿å¯è½æ¯ç¸åçï¼è¿è¡¨æå
许çå¼èå´ä» min
å¼å§ï¼ç»å°å¯è½çæä½å¼ï¼ç¶åç»§ç»ä¸å»ç´å°è¾¾å° max
ãè¿å¯¹æ¥æåæ¶é´ç¹å«æç¨ï¼æ¯å¦ä½ æ³è®©èå´ä»æä¸ 8 ç¹å°æ©ä¸ 8 ç¹ï¼
<input type="time" min="20:00" max="08:00" name="overnight" />
ç¹å®ç屿§åå®ä»¬çå¼ä¼å¯¼è´ä¸ä¸ªç¹å®çé误 ValidityState
ï¼
妿ä¸ä¸ªè¡¨åæ§ä»¶æ²¡æ required
屿§ï¼æ²¡æå¼ï¼æè
æ¯ä¸ä¸ªç©ºå符串ï¼é½ä¸æ¯æ æçãå³ä½¿ä¸è¿°å±æ§åå¨ï¼é¤äº required
ä¹å¤ï¼å空å符串ä¹ä¸ä¼å¯¼è´é误ã
æä»¬å¯ä»¥å¯¹æ¥åçå¼è¿è¡éå¶ï¼æ¯æçæµè§å¨ä¼å¯¹è¿äºè¡¨åçæ°å¼è¿è¡åçéªè¯ï¼å¹¶å¨è¡¨åæäº¤æ¶æéç¨æ·æ¯å¦æé误ã
é¤äºä¸è¡¨ä¸æè¿°çé误å¤ï¼validityState
æ¥å£è¿å
å« badInput
ãvalid
å customError
å¸å°å¼åªè¯»å±æ§ãæææ§å¯¹è±¡å
æ¬ï¼
validityState.valueMissing
validityState.typeMismatch
validityState.patternMismatch
validityState.tooLong
validityState.tooShort
validityState.rangeUnderflow
validityState.rangeOverflow
validityState.stepMismatch
validityState.badInput
validityState.valid
validityState.customError
对äºè¿äºå¸å°å±æ§ä¸çæ¯ä¸ä¸ªï¼å¼ä¸º true
表示æå®çéªè¯å¯è½å¤±è´¥çåå æ¯çå®çï¼ä½ valid
屿§é¤å¤ï¼å¦æå
ç´ ç弿仿æç约æï¼å为 true
ã
妿æéè¯¯ï¼æ¯æçæµè§å¨ä¼æéç¨æ·ï¼å¹¶é»æ¢è¡¨åçæäº¤ãéè¦æ³¨æçæ¯ï¼å¦æèªå®ä¹é误被设置为ä¸ä¸ªçå¼ï¼é¤äºç©ºå符串æ null
以å¤çä»»ä½å¼ï¼ï¼è¡¨åå°è¢«é»æ¢æäº¤ãå¦ææ²¡æèªå®ä¹é误信æ¯ï¼å¹¶ä¸å
¶ä»å±æ§é½æ²¡æè¿åçå¼ï¼é£ä¹ valid
å°ä¸ºçï¼è¡¨åå¯ä»¥è¢«æäº¤ã
function validate(input) {
let validityState_object = input.validity;
if (validityState_object.valueMissing) {
input.setCustomValidity("éè¦ä¸ä¸ªå¼");
} else if (validityState_object.rangeUnderflow) {
input.setCustomValidity("å¼å¤ªå°äº");
} else if (validityState_object.rangeOverflow) {
input.setCustomValidity("å¼å¤ªå¤§äº");
} else {
input.setCustomValidity("");
}
}
æåä¸è¡ï¼å°èªå®ä¹çæææ§ä¿¡æ¯è®¾ç½®ä¸ºç©ºå符串æ¯è³å
³éè¦çãå¦æç¨æ·åºéï¼èæææ§è¢«è®¾ç½®ï¼å³ä½¿ææçå¼é½æ¯ææçï¼ä¹ä¼æäº¤å¤±è´¥ï¼ç´å°æ¶æ¯ä¸º null
ã
å¦æä½ æ³å¨ä¸ä¸ªå段éªè¯å¤±è´¥æ¶æ¾ç¤ºä¸ä¸ªèªå®ä¹çé误信æ¯ï¼ä½ éè¦ä½¿ç¨çº¦æéªè¯ APIï¼å¨ <input>
ï¼åç¸å
³ï¼å
ç´ ä¸å¯ç¨ã以ä¸é¢çè¡¨æ ¼ä¸ºä¾ï¼
<form>
<label for="name">è¾å
¥ç¨æ·åï¼å
许使ç¨å¤§å°å忝ï¼ï¼</label>
<input type="text" name="name" id="name" required pattern="[A-Za-z]+" />
<button>æäº¤</button>
</form>
å¦æä½ è¯å¾æäº¤çè¡¨åæ²¡æå¡«åææçå
å®¹ï¼æè
æ¯ä¸ä¸ªä¸ç¬¦å pattern
çå¼ï¼åºæ¬ç HTML 表åéªè¯åè½å°ä½¿å
¶äº§çä¸ä¸ªé»è®¤çé误信æ¯ã
å¦æä½ æ³è½¬èæ¾ç¤ºèªå®ä¹çé误信æ¯ï¼ä½ å¯ä»¥ä½¿ç¨ä¸é¢è¿æ ·ç JavaScript 代ç ï¼
const nameInput = document.querySelector("input");
nameInput.addEventListener("input", () => {
nameInput.setCustomValidity("");
nameInput.checkValidity();
});
nameInput.addEventListener("invalid", () => {
if (nameInput.value === "") {
nameInput.setCustomValidity("è¾å
¥ä¸ä¸ªç¨æ·åï¼");
} else {
nameInput.setCustomValidity("ç¨æ·ååªè½å
å«å¤§åæå°å忝ï¼è¯·åè¯ä¸éã");
}
});
æ¤ç¤ºä¾ä¼åè¿æ ·æ¸²æï¼
ç®åæ¥è¯´ï¼
input
äºä»¶å¤çç¨åºè¿è¡ checkValidity()
æ¹æ³æ¥æ£æ¥å
¶ææç¶æãinvalid
äºä»¶ï¼è¿è¡ invalid
äºä»¶å¤ç彿°ãå¨è¿ä¸ªå½æ°ä¸ï¼æä»¬ä½¿ç¨ if()
忥å³å®å¼æ ææ¯å ä¸ºå®æ¯ç©ºçï¼è¿æ¯å 为å®ä¸ç¬¦å模å¼ï¼å¹¶è®¾ç½®ä¸ä¸ªèªå®ä¹çæææ§é误信æ¯ãsetCustomValidity()
æ¥å®ç°ãæä»¬å¨æ¯æ¬¡ input
äºä»¶åçæ¶é½è¦è¿æ ·åãå¦æä½ ä¸è¿æ ·åï¼å¹¶ä¸ä¹å设置äºä¸ä¸ªèªå®ä¹çæææ§ï¼é£ä¹è¾å
¥å°ä¼è®¤ä¸ºæ æï¼å³ä½¿å®ç®åå
å«ä¸ä¸ªææçæäº¤å¼ã夿³¨ï¼ å§ç»å¨å®¢æ·ç«¯åæå¡å¨ç«¯éªè¯è¾å ¥çº¦æã约æéªè¯å¹¶ä¸è½æ¶é¤å¨æå¡å¨ç«¯è¿è¡éªè¯çå¿ è¦æ§ãæ æçå¼ä»ç¶å¯ä»¥ç±æ§çæµè§å¨æåçè¡ä¸ºè åéã
夿³¨ï¼ Firefox å¨è®¸å¤çæ¬ä¸æ¯æä¸ä¸ªä¸æçéè¯¯å±æ§ââx-moz-errormessage
ï¼å®å
è®¸ä½ ä»¥ç±»ä¼¼çæ¹å¼è®¾ç½®èªå®ä¹é误信æ¯ãä»ç¬¬ 66 çå¼å§ï¼è¿ä¸ªå±æ§å·²è¢«ç§»é¤ï¼è§Firefox bug 1513890ï¼ã
æäº <input>
ç±»åæå
许çè¾å
¥æ¹å¼åå³äºå½å°çè¯è¨ã卿äºå°åºï¼1,000.00 æ¯ä¸ä¸ªææçæ°åï¼èå¨å
¶ä»å°åºï¼è¾å
¥è¿ä¸ªæ°åçæææ¹å¼æ¯ 1.000,00ã
Firefox 使ç¨ä»¥ä¸å¯å弿¹æ³æ¥ç¡®å®éªè¯ç¨æ·è¾å
¥çè¯è¨ï¼è³å°å¯¹äº type="number"
ï¼ã
lang
/xml:lang
屿§ææå®çè¯è¨ãContent-Language
HTTP 头ææå®çè¯è¨ãæè
ï¼å½å æ¬è¾å ¥å ç´ æ¶ï¼å¨æè¾¹æ·»å æ ç¾æ¯ä¸é¡¹æ éç¢è¦æ±ï¼è¿æ ·é£äºä½¿ç¨è¾ 婿æ¯ç人就å¯ä»¥ç¥éè¾å ¥çå 容æ¯ä»ä¹ãå¦å¤ï¼ç¹å»æè§¦æ¸ä¸ä¸ªæ ç¾ä¼å°ç¦ç¹éä¸å°è¯¥æ ç¾çç¸å ³è¡¨åæ§ä»¶ä¸ãè¿æé«äºè§åç¨æ·çå¯åæ§åå¯ç¨æ§ï¼å¢å äºç¨æ·å¯ä»¥ç¹å»æè§¦æ¸ä»¥æ¿æ´»è¡¨åæ§ä»¶çåºåãè¿å¯¹åéæé®åå¤éæ¡ç¹å«æç¨ï¼çè³éå¸¸å¿ è¦ï¼ï¼å 为å®ä»¬å¾å°ãå ³äºæ ç¾çæ´å¤ä¿¡æ¯ï¼è¯·åè§æ ç¾ä¸èã
以ä¸ç¤ºä¾æ¯å° <label>
åä¸ä¸ª <input>
å
ç´ å»ºç«èç³»ãä½ éè¦èµäº <input>
å
ç´ ä¸ä¸ª id
屿§ã <label>
éè¦ä¸ä¸ª for
屿§ï¼å
¶å¼ä¸è¾å
¥ç id
ç¸åã
<label for="peas">ä½ åæ¬¢è±è±åï¼</label>
<input type="checkbox" name="peas" id="peas" />
尺寸
å表åè¾å ¥è¿æ ·çäºå¨å ç´ åºè¯¥æä¾ä¸ä¸ªè¶³å¤å¤§çåºåï¼ä»¥ä¾¿äºæ¿æ´»å®ä»¬ãè¿æå©äºåç§äººï¼å æ¬æè¿å¨æ§å¶é®é¢ç人å使ç¨é精确形å¼çè¾å ¥ï¼å¦æåç¬æææï¼ç人ã建议æå°äºå¨å°ºå¯¸ä¸º 44Ã44 CSS åç´ ã
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