<input type="text">
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
text ç±»åç <input> å
ç´ å建äºåºç¡çåè¡ææ¬å段ã
å°è¯ä¸ä¸
<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;
}
| å¼ | 代表å å«å¨ææ¬å段ä¸çæå |
| äºä»¶ | change å input |
| æ¯æçå ¬å ±å±æ§ | autocompleteãlistãmaxlengthãminlengthãpatternãplaceholderãreadonlyãrequired å size |
| IDL 屿§ | listãvalue |
| DOM æ¥å£ | HTMLInputElement |
| æ¹æ³ | select()ãsetRangeText() å setSelectionRange()ã |
å¼
value 屿§æ¯ä¸ä¸ªå
å«äºææ¬åå½åæåçå符串ãä½ å¯ä»¥å¨ Javascript ä¸ä½¿ç¨ HTMLInputElement ç value 屿§è·åè¿äºæåã
let theText = myTextInput.value;
妿å½åææ¬è¾å
¥æ²¡æçº¦æéªè¯ï¼æ¥çéªè¯å°èè·åæ´å¤è¯¦ç»ä¿¡æ¯ï¼ï¼value å¼å¯è½æ¯ç©ºå符串ï¼""ï¼ã
å ¶ä»å±æ§
é¤äºææ <input> å
ç´ ä¸å
±æç坿ä½ç屿§å¤ï¼ææ¬è¾å
¥æ¡è¿æ¯æä»¥ä¸å±æ§ï¼
list
åè¡¨å±æ§ç弿¯ä½äºåä¸ææ¡£ä¸ç <datalist> å
ç´ ç idã<datalist> æä¾äºä¸ä¸ªé¢å®ä¹çå¼å表ï¼åç¨æ·å»ºè®®è¿ä¸ªè¾å
¥ãå表ä¸ä»»ä½ä¸ type ä¸å
¼å®¹çå¼é½ä¸å
æ¬å¨å»ºè®®é项ä¸ãææä¾ç弿¯å»ºè®®ï¼ä¸æ¯è¦æ±ï¼ç¨æ·å¯ä»¥ä»è¿ä¸ªé¢å®ä¹çå表ä¸éæ©ï¼æè
æä¾ä¸åçå¼ã
maxlength
ç¨æ·å¯ä»¥è¾å
¥å° text è¾å
¥æ¡ä¸çæå¤§å符æ°ï¼ä»¥ UTF-16 ç ç¹ä¸ºåä½ï¼ãå¿
须为大äºçäº 0 çæ´æ°ãå¦ææªæå® maxlength ææå®äºæ æçå¼ï¼å text è¾å
¥æ¡å°æ²¡ææå¤§å¼ãè¿ä¸ªå¼ä¹å¿
须大äºçäº minlength çå¼ã
å¦æææ¬æ¡ä¸çå符æ°å¤§äº maxlength UTF-16 ç¼ç åå
é¿åº¦ï¼åè¾å
¥å°æ æ³éè¿çº¦æéªè¯ã约æéªè¯ä»
ä½ç¨äºç¨æ·ä¿®æ¹è¾å
¥å¼çæ¶åã
minlength
ç¨æ·å¯ä»¥è¾å
¥å° text è¾å
¥æ¡ä¸çæå°å符æ°ï¼ä»¥ UTF-16 ç ç¹ä¸ºåä½ï¼ã该å¼å¿
é¡»æ¯å°äºçäº maxlength æå®çå¼çéè´æ´æ°å¼ãå¦ææªæå® minlength ææå®äºæ æçå¼ï¼å text è¾å
¥å°æ²¡ææå°å¼ã
妿è¾å
¥å°å段ä¸çææ¬çé¿åº¦å°äº minlength UTF-16 代ç åå
çé¿åº¦ï¼åè¾å
¥å°æ æ³éè¿çº¦æéªè¯ã约æéªè¯ä»
ä½ç¨äºç¨æ·ä¿®æ¹è¾å
¥å¼çæ¶åã
pattern
妿æå®äº pattern 屿§ï¼ä¸ºäºä½¿ value éè¿çº¦æéªè¯ï¼å¿
é¡»æ»¡è¶³è¯¥å±æ§ç»å®çæ£å表达å¼ãå®å¿
é¡»æ¯ RegExp ç±»åçææ JavaScript æ£å表达å¼ï¼å¹¶ä¸å·²å¨æä»¬çæ£åè¡¨è¾¾å¼æåä¸è¿è¡äºè¯´æï¼å¨ç¼è¯æ£åè¡¨è¾¾å¼æ¶æå®äº 'u' æ å¿ï¼å æ¤è¯¥æ¨¡å¼è¢«è§ä¸º Unicode 代ç ç¹çåºåï¼è䏿¯ ASCIIãæ¨¡å¼ææ¬å¨å´æ éæå®æ£ææ ã
å¦ææ¨¡å¼æªæå®ææ æï¼åä¸åºç¨ä»»ä½æ£å表达å¼ï¼å¹¶ä¸å°å®å ¨å¿½ç¥æ¤å±æ§ã
夿³¨ï¼ä½¿ç¨ title 屿§æå®å¤§å¤æ°æµè§å¨å°æ¾ç¤ºä¸ºææ¬çå·¥å
·æç¤ºï¼ä»¥è¯´æä¸æ¨¡å¼å¹é
çè¦æ±ãä½ è¿åºè¯¥å¨éè¿æ·»å å
¶ä»è¯´ææ§æåã
请åç §æå®æ¨¡å¼æ´å¤å 容åä¾åã
placeholder
placeholder 屿§æ¯ä¸ä¸ªå符串ï¼å¯åç¨æ·æä¾æå
³è¯¥å段ä¸éè¦ä»ä¹æ ·çä¿¡æ¯çç®çæç¤ºãå®åºè¯¥æ¯ä¸ä¸ªåè¯æçè¯æ¥è¯´æé¢æçæ°æ®ç±»åï¼è䏿¯è¯´ææ§æ¶æ¯ãææ¬ä¸ä¸å¾å
å«åè½¦ç¬¦ææ¢è¡ç¬¦ã
妿æ§ä»¶çå å®¹å ·ææ¹åï¼LTR æ RTLï¼ï¼ä½éè¦ä»¥ç¸åçæ¹åæ¾ç¤ºå ä½ç¬¦ï¼åå¯ä»¥ä½¿ç¨ Unicode ååç®æ³æ¥æ ¼å¼åå符ï¼ä»èè¦çåæå ä½ç¬¦çæ¹åï¼è¯·åè§å¦ä½é对ååææ¬ä½¿ç¨ Unicode æ§å¶ç¬¦è·åæ´å¤ä¿¡æ¯ã
夿³¨ï¼å°½å¯è½é¿å
ä½¿ç¨ placeholder 屿§ãå®å¨è¯ä¹ä¸æ²¡æå
¶ä»è§£é表åçæ¹å¼æç¨ï¼å¹¶ä¸å¯è½å¯¼è´å
容åºç°æå¤çé®é¢ã请åè§ <input> æ ç¾ä»¥è·åæ´å¤ä¿¡æ¯ã
readonly
ä¸ä¸ªå¸å°å±æ§ï¼å¦æåå¨ï¼åè¡¨ç¤ºè¯¥åæ®µä¸è½ç±ç¨æ·ç¼è¾ã使¯ï¼ä»å¯ä»¥éè¿ JavaScript 代ç ç´æ¥è®¾ç½® HTMLInputElement ç value 屿§æ¥æ´æ¹ã
夿³¨ï¼å 为åªè¯»å段ä¸è½æå¼ï¼æä»¥ required 对æå®äº readonly 屿§çè¾å
¥æ²¡æä»»ä½å½±åã
size
size 屿§æ¯ä¸ä¸ªæ°åå¼ï¼æç¤ºè¾å
¥åæ®µåºæå¤å°ä¸ªå符宽ã该å¼å¿
é¡»æ¯ä¸ä¸ªå¤§äºé¶çæ°åï¼é»è®¤å¼æ¯ 20ãç±äºå符宽度åä¸ç¸åï¼è¿å¯è½æ¯ä¹å¯è½ä¸æ¯ç²¾ç¡®çï¼ä¸åºä¾èµäºæ¤ï¼ç»æè¾å
¥å¯è½æ¯æå®çåç¬¦æ°æ´çªææ´å®½ï¼è¿åå³äºå符ååä½ï¼font使ç¨ä¸ç设置ï¼ã
è¿å¹¶ä¸éå¶ç¨æ·å¯ä»¥å¨è¯¥å段ä¸è¾å
¥å¤å°ä¸ªå符ï¼ä»
è½æå®ä¸æ¬¡å¯ä»¥çå°å¤å°ä¸ªãè¦è®¾ç½®è¾å
¥æ°æ®é¿åº¦çä¸éï¼è¯·ä½¿ç¨ maxlength 屿§ã
spellcheck
spellcheck æ¯ä¸ä¸ªå
¨å±å±æ§ï¼ç¨äºæç¤ºæ¯å¦å¯ç¨å
ç´ çæ¼åæ£æ¥ãå®å¯ä»¥ç¨äºä»»ä½å¯ç¼è¾çå
容ï¼ä½æ¯è¿éæä»¬èèå¨ <input> å
ç´ ä¸ä½¿ç¨ spellcheck çç»èã spellcheck çå
许å¼ä¸ºï¼
false-
ç¦ç¨æ¤å ç´ çæ¼åæ£æ¥ã
true-
对æ¤å ç´ å¯ç¨æ¼åæ£æ¥ã
""ï¼ç©ºåç¬¦ä¸²ï¼æç©ºå¼-
éµå¾ªå ç´ çé»è®¤è¡ä¸ºè¿è¡æ¼åæ£æ¥ãè¿å¯è½åºäºç¶å ç´
spellcheck设置æå ¶ä»å ç´ ã
妿è¾å ¥å段没æè®¾ç½® readonly 屿§ä¸æªç¦ç¨ï¼åå¯ä»¥å¯ç¨æ¼åæ£æ¥ã
å¦æç¨æ·ä»£ççé¦é项è¦çäºè®¾ç½®ï¼åéè¿è¯»å spellcheck è¿åçå¼å¯è½æ æ³åæ æ§ä»¶ä¸æ¼åæ£æ¥çå®é
ç¶æã
éæ å屿§
以ä¸éæ å屿§å¨æäºæµè§å¨ä¸ä¹å¯ç¨ãä¸è¬æ¥è¯´ï¼é¤éä¸ä¸å¾å·²ï¼å¦åä½ åºè¯¥é¿å 使ç¨å®ä»¬ã
autocorrect
Safari æ©å±ï¼autocorrect 屿§æ¯ä¸ä¸ªå符串ï¼å®æç¤ºå¨ç¨æ·ç¼è¾æ¤åæ®µæ¶æ¯å¦æ¿æ´»èªå¨æ´æ£ãå
许çå¼ä¸ºï¼
mozactionhint
Mozilla æ©å±ï¼å®æä¾äºä¸ä¸ªæç¤ºï¼æç¤ºç¨æ·å¨ç¼è¾åæ®µæ¶æ Enter æ Return é®å°éåä½ç§æä½ã
æ¤å±æ§å·²ç»åºå¼ï¼è¯·ä½¿ç¨å
¨å±å±æ§ enterkeyhint ä½ä¸ºæ¿ä»£ã
ä½¿ç¨ææ¬è¾å ¥æ¡
<input> å
ç´ ç text ç±»ååå»ºåºæ¬çåè¡è¾å
¥ãä½ åºè¯¥å¨å¸æç¨æ·è¾å
¥åè¡å¼çä»»ä½å°æ¹ä½¿ç¨å®ä»¬ï¼å¹¶ä¸æ²¡ææ´å
·ä½çè¾å
¥ç±»åå¯ç¨äºæ¶é该å¼ï¼ä¾å¦ï¼å¦ææ¯æ¥æææ¶é´ãURLãçµåé®ä»¶ææ¥æ¾è¯æ±ï¼ä½ å°æ¥ææ´å¥½çéæ©ï¼ã
åºç¡ç¤ºä¾
<form>
<div>
<label for="uname">è¾å
¥ä¸ä¸ªç¨æ·åï¼</label>
<input type="text" id="uname" name="name" />
</div>
<div>
<button>æäº¤</button>
</div>
</form>
å¦ä¸æç¤ºï¼
æäº¤åï¼åéå°æå¡å¨çé®/å¼å¯¹çæ°æ®å°ä¸º name=Chrisï¼å¦æå¨æäº¤ä¹åè¾å
¥äºâChrisâä½ä¸ºè¾å
¥å¼ï¼ãä½ å¿
须记ä½å¨ <input> å
ç´ ä¸å
å« name 屿§ï¼å¦åææ¬åæ®µçå¼å°ä¸å
å«å¨æäº¤çæ°æ®ä¸ã
设置å ä½ç¬¦
ä½ å¯ä»¥éè¿ä½¿ç¨ placeholder 屿§å¨ææ¬è¾å
¥ä¸æä¾ä¸ä¸ªæç¨çå ä½ç¬¦ï¼æç¤ºç¨æ·è¯¥è¾å
¥ä»ä¹ãçä¸é¢çä¾åï¼
<form>
<div>
<label for="uname">è¾å
¥ä¸ä¸ªç¨æ·åï¼</label>
<input type="text" id="uname" name="name" placeholder="ä¸ä¸ªå°ååè¯" />
</div>
<div>
<button>æäº¤</button>
</div>
</form>
ä½ å¯ä»¥å¨ä¸é¢çå°å ä½ç¬¦çåç°æ¹å¼ï¼
å ä½ç¬¦é常以æ¯å
ç´ çåæ¯è²æ´æµ
çé¢è²åç°ï¼å¹¶ä¸å¨ç¨æ·å¼å§ååæ®µä¸è¾å
¥ææ¬æ¶ï¼æè
æ¯å½å段éè¿ç¼ç¨æ¹å¼è®¾ç½®å
¶ value 屿§æ¶ï¼å°±ä¼èªå¨æ¶å¤±ã
è¾å ¥æ¡å ç´ å°ºå¯¸
å¯ä»¥ä½¿ç¨ size 屿§æ¥æ§å¶è¾å
¥æ¡ç尺寸ã使ç¨å®ï¼å¯ä»¥æå®ææ¬è¾å
¥ä¸æ¬¡å¯ä»¥æ¾ç¤ºçå符æ°ãè¿ä¼å½±åå
ç´ ç宽度ï¼ä½¿ä½ å¯ä»¥æå符è䏿¯åç´ æå®å®½åº¦ãä¾å¦ï¼å¨æ¤ç¤ºä¾ä¸ï¼è¾å
¥ä¸º 30 个å符宽ï¼
<form>
<div>
<label for="uname">è¾å
¥ä¸ä¸ªç¨æ·åï¼</label>
<input
type="text"
id="uname"
name="name"
placeholder="ä¸ä¸ªå°ååè¯"
size="30" />
</div>
<div>
<button>æäº¤</button>
</div>
</form>
éªè¯
text ç±»åç <input> å
ç´ é»è®¤æ²¡æåºç¨èªå¨éªè¯ï¼å ä¸ºåºæ¬ææ¬è¾å
¥éè¦è½å¤æ¥åä»»æå符串ï¼ï¼ä½æ¯æä¸äºå®¢æ·ç«¯éªè¯é项å¯ç¨ï¼æä»¬å°å¨ä¸é¢è®¨è®ºã
夿³¨ï¼HTML 表åéªè¯ä¸è½æ¿ä»£æå¡å¨èæ¬ï¼ä»¥ç¡®ä¿è¾å ¥çæ°æ®æ ¼å¼æ£ç¡®ãå¯¹äºæäººæ¥è¯´ï¼å¯¹ HTML è¿è¡è°æ´ä»¥ä½¿å ¶ç»è¿éªè¯æå®å ¨å é¤éªè¯å¤ªå®¹æäºãæäººä¹å¯ä»¥å®å ¨ç»å¼ä½ ç HTML å¹¶å°æ°æ®ç´æ¥æäº¤å°ä½ çæå¡å¨ã妿æå¡å¨ç«¯ä»£ç æ æ³éªè¯æ¥æ¶å°çæ°æ®ï¼åå½å°æ ¼å¼ä¸æ£ç¡®çæ°æ®ï¼æå¤ªå¤§ï¼ç±»åéè¯¯çæ°æ®ççï¼è¾å ¥æ°æ®åºæ¶ï¼ç¾é¾å¯è½ä¼åçã
æ ·å¼æ³¨æäºé¡¹
æä¸äºæç¨ç伪类å¯ç¨äºè®¾ç½®è¡¨åå
ç´ çæ ·å¼ï¼ä»¥å¸®å©ç¨æ·æ¥çå
¶å¼æ¯ææè¿æ¯æ æï¼å®ä»¬æ¯ :valid å :invalidã卿¬èä¸ï¼æä»¬å°ä½¿ç¨ä»¥ä¸ CSSï¼å®å°å¨å
嫿æå¼çè¾å
¥æè¾¹æ¾ç½®ä¸ä¸ªå¤éæ è®°ï¼tickï¼ï¼å¹¶å¨å
嫿 æå¼çè¾å
¥æè¾¹æ¾ç½®ä¸ä¸ªåå·ï¼Xï¼ã
div {
margin-bottom: 10px;
position: relative;
}
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;
}
è¯¥ææ¯è¿éè¦å° <span> å
ç´ æ¾ç½®å¨ form å
ç´ ä¹åï¼è¯¥ form å
ç´ å
å½å¾æ çææè
ãè¿æ ·åçåå æ¯æäºæµè§å¨ä¸çæäºè¾å
¥ç±»åä¸è½å¾å¥½å°æ¾ç¤ºç´æ¥ä½äºå
¶åç徿 ã
使è¾å ¥æ¡å¿ å¡«
ä½ å¯ä»¥ä½¿ç¨ required 屿§ç®åå°ä»¤è¯¥è¾å
¥æ¡å¨è¡¨åæäº¤åå¿
须填å
¥å¼ï¼
<form>
<div>
<label for="uname">è¾å
¥ä¸ä¸ªç¨æ·åï¼</label>
<input type="text" id="uname" name="name" required />
<span class="validity"></span>
</div>
<div>
<button>æäº¤</button>
</div>
</form>
è¯¥ç¤ºä¾æ¸²æå¦ä¸æç¤ºï¼
妿å°è¯å¨æªè¾å ¥æç´¢è¯çæ åµä¸æäº¤è¡¨åï¼æµè§å¨å°æ¾ç¤ºä¸æ¡éè¯¯æ¶æ¯ã
è¾å ¥å¼é¿åº¦
ä½ å¯ä»¥ä½¿ç¨ minlength 屿§æå®è¾å
¥å¼çæå°é¿åº¦ï¼ä»¥å符为åä½ï¼ï¼åæ ·ï¼ä¹å¯ä»¥ä½¿ç¨ maxlength 设置è¾å
¥å¼çæå¤§é¿åº¦ï¼ä»¥å符为åä½ï¼ã
ä¸é¢ç示ä¾è¦æ±è¾å ¥çå¼çé¿åº¦ä¸º 4â8 个å符ã
<form>
<div>
<label for="uname">è¾å
¥ä¸ä¸ªç¨æ·åï¼</label>
<input
type="text"
id="uname"
name="name"
required
size="10"
placeholder="ç¨æ·å"
minlength="4"
maxlength="8" />
<span class="validity"></span>
</div>
<div>
<button>æäº¤</button>
</div>
</form>
å¦ä¸æç¤ºï¼
妿å°è¯æäº¤å°äº 4 个å符ç表åï¼å伿¶å°ä¸æ¡ç¸åºçéè¯¯æ¶æ¯ï¼ä¸åçæµè§å¨ä¼ææä¸åï¼ã妿å°è¯è¾å ¥ 8 个以ä¸çåç¬¦ï¼æµè§å¨å°ä¸å 许è¾å ¥ã
夿³¨ï¼å¦æä½ æå®äº minlength 使ªæå® requiredï¼åè¾å
¥è¢«è§ä¸ºææï¼å 为ä¸éè¦ç¨æ·æå®å¼ã
æå®æ¨¡å¼
å¯ä»¥ä½¿ç¨ pattern 屿§æå®è¾å
¥å¼å¿
é¡»å¹é
æè½è¢«è®¤ä¸ºæ¯ææçæ£å表达å¼ï¼è¯·åç
§ä½¿ç¨æ£åè¡¨è¾¾å¼æ ¡éªï¼ã
ä¸é¢ç示ä¾å°å¼éå¶ä¸º 4-8 个å符ï¼å¹¶è¦æ±è¯¥å¼ä» å å«å°å忝ã
<form>
<div>
<label for="uname">è¾å
¥ä¸ä¸ªç¨æ·åï¼</label>
<input
type="text"
id="uname"
name="name"
required
size="45"
pattern="[a-z]{4,8}" />
<span class="validity"></span>
<p>ç¨æ·åå¿
须为 4-8 ä½é¿ï¼ä¸ä»
å
å«å°å忝ã</p>
</div>
<div>
<button>æäº¤</button>
</div>
</form>
å¦ä¸æç¤ºï¼
示ä¾
å¯ä»¥å¨ä½ ç第ä¸ä¸ª HTML 表ååå¦ä½ç»æå HTML 表åæç« ä¸çå°ä¸äºå¥½ç示ä¾ã
è§è
| è§è |
|---|
| HTML > # text-(type=text)-state-and-search-state-(type=search) > |
æµè§å¨å ¼å®¹æ§
åé
- HTML 表å
<input>å ç´ åå ¶åºäºçæ¥å£HTMLInputElement<input type="search"><textarea>ï¼å¤è¡ææ¬è¾å ¥å ç´- CSS 屿§å ¼å®¹æ§è¡¨æ ¼