<form>ï¼è¡¨å®å ç´
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2015å¹´7æâ©.
<form> HTML å
ç´ ä»£è¡¨äºä¸åå
å«ç¨æ¼æäº¤ä¿¡æ¯ç交äºå¼æ§å¶é
çæä»¶ç« ç¯ã
å試ä¸ä¸
<form action="" method="get" class="form-example">
<div class="form-example">
<label for="name">Enter your name: </label>
<input type="text" name="name" id="name" required />
</div>
<div class="form-example">
<label for="email">Enter your email: </label>
<input type="email" name="email" id="email" required />
</div>
<div class="form-example">
<input type="submit" value="Subscribe!" />
</div>
</form>
form.form-example {
display: table;
}
div.form-example {
display: table-row;
}
label,
input {
display: table-cell;
margin-bottom: 10px;
}
label {
padding-right: 10px;
}
å¯ä»¥ä½¿ç¨ :valid å :invalid CSS å½é¡æ ¹æè¡¨å®å
§çå
ç´ æ¯å¦ææä¾è¨ç½® <form> å
ç´ çæ¨£å¼ã
屬æ§
該å ç´ å å«å ¨å屬æ§ã
acceptå·²æ£ç¨-
伺æå¨æ¥åçéèåéçå §å®¹é¡åã
åè¨»ï¼æ¤å±¬æ§å·²è¢«å»¢æ£ï¼ä¸æå使ç¨ãè«æ¹ç¨
<input type=file>å ç´ ä¸çaccept屬æ§ã accept-charset-
伺æå¨æ¥åçåå 編碼ã該è¦ç¯å 許使ç¨å®ä¸ä¸åå大å°å¯«çå¼ââ
"UTF-8"ï¼åæ äºéç¨®ç·¨ç¢¼çæ®éæ§ï¼æ·å²ä¸ï¼å¯ä»¥ä»¥éèåéæç©ºæ ¼åéçæ¸ 宿å®å¤ååå 編碼ï¼ã autocapitalize-
æ§å¶è¼¸å ¥ææ¬æ¯å¦èªå大寫ï¼ä»¥åå¦ä½èªå大寫ãæéæ´å¤ä¿¡æ¯ï¼è«åè¦
autocapitalizeå ¨å屬æ§é é¢ã autocomplete-
æç¤ºçè¦½å¨æ¯å¦å¯ä»¥é»èªæ æ³ä¸èªåå®æè¼¸å ¥å ç´ çå¼ã表å®å ç´ ä¸ç
autocompleteå±¬æ§æè¦è<form>ä¸çå®ãå¯è½çå¼ï¼offï¼ç覽å¨å¯è½ä¸æèªåå®æè¼¸å ¥ãï¼ç覽å¨å¾åæ¼å¿½ç¥å°æ·ççç»é表å®çæ¤å±¬æ§ï¼è«åè¦èªå宿屬æ§åç»å ¥æ¬ï¼onï¼ç覽å¨å¯è½æèªåå®æè¼¸å ¥ã
name-
表å®çå稱ã該å¼ä¸è½çºç©ºå符串ï¼ä¸å¿ é å¨å ¶æå¨ç表å®éåä¸å¯ä¸ï¼å¦ææç話ï¼ã
rel-
æ§å¶è¨»éå表å®åµå»ºç飿¥é¡åã註éå æ¬
externalãnofollowãopenerãnoopenerånoreferrerã飿¥é¡åå æ¬helpãprevãnextãsearchålicenseãrelç弿¯éäºæèå¼çç©ºæ ¼åéå表ã
æäº¤è¡¨å®ç屬æ§
以ä¸å±¬æ§æ§å¶è¡¨å®æäº¤æçè¡çºã
action-
èçè¡¨å®æäº¤ç URLãæ¤å¼å¯ä»¥è¢«
<button>ã<input type="submit">æ<input type="image">å ç´ ä¸çformaction屬æ§è¦èãç¶è¨ç½®method="dialog"æï¼å°å¿½ç¥æ¤å±¬æ§ã enctype-
妿
method屬æ§çå¼çºpostï¼åenctypeæ¯è¡¨å®æäº¤ç MIME é¡åãå¯è½çå¼ï¼application/x-www-form-urlencodedï¼é»èªå¼ãmultipart/form-dataï¼å¦æè¡¨å®å å«å¸¶ætype=fileç<input>å ç´ ï¼è«ä½¿ç¨æ¤å¼ãtext/plainï¼ç¨æ¼èª¿è©¦ç®çã
éåå¼å¯ä»¥è¢«
<button>ã<input type="submit">æ<input type="image">å ç´ ä¸çformenctype屬æ§è¦èã method-
æäº¤è¡¨å®æä½¿ç¨ç HTTP æ¹æ³ã å è¨±çæ¹æ³/å¼åªæï¼ä¸åå大å°å¯«ï¼ï¼
postï¼POSTæ¹æ³ï¼è¡¨å®æ¸æä½çºè«æ±ä¸»é«ç¼éãgetï¼é»èªå¼ï¼ï¼GETï¼è¡¨å®æ¸æéå å°actionURL ä¸ï¼ä½¿ç¨?åé符ãç¶è¡¨å®æ²æå¯ä½ç¨æä½¿ç¨æ¤æ¹æ³ãdialogï¼ç¶è¡¨å®ä½æ¼<dialog>å §é¨æï¼ééå°è©±æ¡ä¸¦å°è´æäº¤æè§¸ç¼submitäºä»¶ï¼èä¸æäº¤æ¸æææ¸ é¤è¡¨å®ã
éåå¼å¯ä»¥è¢«
<button>ã<input type="submit">æ<input type="image">å ç´ ä¸çformmethod屬æ§è¦èã novalidate-
æ¤å¸æå±¬æ§è¡¨ç¤ºæäº¤è¡¨å®æä¸æè©²é©è表å®ã妿æªè¨ç½®æ¤å±¬æ§ï¼å æ¤è¡¨å®è¢«é©èï¼ï¼åå¯ä»¥è¢«å±¬æ¼è¡¨å®ç
<button>ã<input type="submit">æ<input type="image">å ç´ ä¸çformnovalidate屬æ§è¦èã target-
æäº¤è¡¨å®å¾å¨åªè£¡é¡¯ç¤ºé¿æã宿¯ä¸åç¨æ¼ç覽ä¸ä¸æçå稱/ééµåï¼ä¾å¦ï¼æ¨ç±¤ãçªå£æ iframeï¼ã以ä¸ééµåå ·æç¹æ®å«ç¾©ï¼
_selfï¼é»èªå¼ï¼ï¼å è¼å°èç¶åç覽ä¸ä¸æç¸åçä½ç½®ã_blankï¼å è¼å°æ°çæªå½åç覽ä¸ä¸æãéæä¾äºèè¨ç½®rel="noopener"ç¸åçè¡çºï¼è©²å±¬æ§ä¸è¨ç½®window.openerã_parentï¼å è¼å°ç¶åç覽ä¸ä¸æçç¶ç´ãå¦ææ²æç¶ç´ï¼åè_selfçè¡çºç¸åã_topï¼å è¼å°é ç´ç覽ä¸ä¸æï¼å³ï¼ç¶åä¸ä¸æçç¥å ï¼ä¸¦ä¸æ²æç¶ç´ï¼ãå¦ææ²æç¶ç´ï¼åè_selfçè¡çºç¸åã_unfencedTopï¼å°è¡¨å®ä¸çé¿æå è¼å°åµå ¥å¼åæ¬é æ¡çé ç´æ¡æ¶ï¼å³ç©¿è¶åæ¬é æ¡çæ ¹ï¼èå ¶ä»ä¿çç®çå°ä¸åï¼ãå å¨åæ¬é æ¡å §å¯ç¨ã
éåå¼å¯ä»¥è¢«
<button>ã<input type="submit">æ<input type="image">å ç´ ä¸çformtarget屬æ§è¦èã
ç¯ä¾
<!-- Form which will send a GET request to the current URL -->
<form method="get">
<label>
Name:
<input name="submitted-name" autocomplete="name" />
</label>
<button>Save</button>
</form>
<!-- Form which will send a POST request to the current URL -->
<form method="post">
<label>
Name:
<input name="submitted-name" autocomplete="name" />
</label>
<button>Save</button>
</form>
<!-- Form with fieldset, legend, and label -->
<form method="post">
<fieldset>
<legend>Do you agree to the terms?</legend>
<label><input type="radio" name="radio" value="yes" /> Yes</label>
<label><input type="radio" name="radio" value="no" /> No</label>
</fieldset>
</form>
çµæ
æè¡æè¦
| å §å®¹é¡å | æµå §å®¹ãæ«åå §å®¹ |
|---|---|
| å 許çå §å®¹ |
æµå
§å®¹ï¼ä½ä¸å
å« <form> å
ç´
|
| æ¨ç±¤çç¥ | ä¸å 許ï¼éå§åçµææ¨ç±¤é½æ¯å¿ éçã |
| å 許çç¶å ç´ | 任使¥åæµå §å®¹çå ç´ |
| é±å«ç ARIA è§è² |
form
|
| å 許ç ARIA è§è² |
searchã
none æ presentation
|
| DOM ä»é¢ | HTMLFormElement |
è¦ç¯
| Specification |
|---|
| HTML > # the-form-element > |
ç覽å¨ç¸å®¹æ§
åè¦
- HTML è¡¨å®æå
- å¨åµå»ºè¡¨å®æä½¿ç¨çå
¶ä»å
ç´ ï¼
<button>ã<datalist>ã<fieldset>ã<input>ã<label>ã<legend>ã<meter>ã<optgroup>ã<option>ã<output>ã<progress>ã<select>ã<textarea>ã - ç²å表å®ä¸å
ç´ çå表ï¼
HTMLFormElement.elements - ARIAï¼è¡¨å®è§è²
- ARIAï¼æç´¢è§è²