HTMLFormElement
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
HTMLFormElement æ¥å£è¡¨ç¤º DOM ä¸ç <form> å
ç´ ãå®å
许访é®åï¼å¨æäºæ
åµä¸ï¼ä¿®æ¹è¡¨åçå个æ¹é¢ï¼ä»¥å访é®å
¶ç»æå
ç´ ã
å®ä¾å±æ§
æ¤æ¥å£è¿ä»å
¶ç¶æ¥å£ HTMLElement ç»§æ¿å±æ§ã
HTMLFormElement.elementsåªè¯»-
å 嫿æå±äºæ¤è¡¨åå ç´ çè¡¨åæ§ä»¶ç
HTMLFormControlsCollectionã HTMLFormElement.lengthåªè¯»-
åæ è¡¨å䏿§ä»¶çæ°éç
longå¼ã HTMLFormElement.name-
åæ è¡¨åç
nameHTML 屿§å¼çå符串ï¼å å«è¡¨åçåç§°ã HTMLFormElement.method-
åæ è¡¨åç
methodHTML 屿§å¼çå符串ï¼è¡¨ç¤ºç¨äºæäº¤è¡¨åç HTTP æ¹æ³ãåªè½è®¾ç½®ç¹å®çå¼ã HTMLFormElement.target-
åæ è¡¨åç
targetHTML 屿§å¼çå符串ï¼è¡¨ç¤ºç¨äºæ¾ç¤ºæäº¤è¡¨åçç»æçä½ç½®ã HTMLFormElement.action-
åæ è¡¨åç
actionHTML 屿§å¼çå符串ï¼å å«å¤ç表åæäº¤çä¿¡æ¯çç¨åºç URIã HTMLFormElement.encodingæHTMLFormElement.enctype-
åæ è¡¨åç
enctypeHTML 屿§å¼çå符串ï¼è¡¨ç¤ºç¨äºå°è¡¨åä¼ è¾å°æå¡å¨çå 容类åãåªè½è®¾ç½®ç¹å®çå¼ãè¿ä¸¤ä¸ªå±æ§æ¯åä¹è¯ã HTMLFormElement.acceptCharset-
åæ è¡¨åç
accept-charsetHTML 屿§å¼çå符串ã HTMLFormElement.autocomplete-
åæ è¡¨åç
autocompleteHTML 屿§å¼çå符串ï¼è¡¨ç¤ºæ¤è¡¨åä¸çæ§ä»¶æ¯å¦å¯ä»¥ç±æµè§å¨èªå¨å¡«å å ¶å¼ã HTMLFormElement.noValidate-
åæ è¡¨åç
novalidateHTML 屿§å¼çå¸å°å¼ï¼è¡¨ç¤ºæ¯å¦ä¸åºå¯¹è¡¨åè¿è¡éªè¯ã
å
·åè¾å
¥ä¼è¢«ä½ä¸ºå±æ§æ·»å å°å
¶æå±è¡¨åçå®ä¾ä¸ï¼ä¸å¦æå®ä»¬å
±äº«ç¸åçåç§°ï¼ä¾å¦ï¼å
·æå为 action çè¾å
¥ç表åå°ä½¿å
¶ action 屿§è¿å该è¾å
¥ï¼è䏿¯è¡¨åç action HTML 屿§ï¼ã
å®ä¾æ¹æ³
æ¤æ¥å£è¿ä»å
¶ç¶æ¥å£ HTMLElement ç»§æ¿æ¹æ³ã
checkValidity()-
妿å ç´ çåæ§ä»¶åå°çº¦æéªè¯å¹¶æ»¡è¶³è¿äºçº¦æï¼åè¿å
trueï¼å¦ææäºæ§ä»¶ä¸æ»¡è¶³å ¶çº¦æï¼åè¿åfalseãå¨ä¸æ»¡è¶³å ¶çº¦æç任使§ä»¶ä¸è§¦åå为invalidçäºä»¶ï¼å¦ææªåæ¶äºä»¶ï¼åè¿äºæ§ä»¶è¢«è§ä¸ºæ æãç±ç¨åºåå³å®å¦ä½ååºfalseã reportValidity()-
妿å ç´ çåæ§ä»¶æ»¡è¶³å ¶éªè¯çº¦æï¼åè¿å
trueãå½è¿åfalseæ¶ï¼å°ä¸ºæ¯ä¸ªæ æçåæ§ä»¶è§¦åå¯åæ¶çinvalidäºä»¶ï¼å¹¶å°éªè¯é®é¢æ¥åç»ç¨æ·ã requestSubmit()-
请æ±ä½¿ç¨æå®çæäº¤æé®åå ¶ç¸åºçé ç½®æ¥æäº¤è¡¨åã
reset()-
å°è¡¨åéç½®ä¸ºå ¶åå§ç¶æã
submit()-
å°è¡¨åæäº¤è³æå¡å¨ã
äºä»¶
ä½¿ç¨ addEventListener() æå°äºä»¶çå¬å¨èµå¼ç»æ¤æ¥å£ç oneventname 屿§æ¥çå¬è¿äºäºä»¶ã
使ç¨è¯´æ
>è·å¾è¡¨åå ç´ å¯¹è±¡
è¦è·å HTMLFormElement 对象ï¼ä½ å¯ä»¥ä½¿ç¨ CSS éæ©å¨å querySelector()ï¼æè
ä½¿ç¨ææ¡£ç forms 屿§è·åææ¡£ä¸ææè¡¨åçå表ã
Document.forms è¿å HTMLFormElement 对象æ°ç»ï¼å
¶ä¸ååºäºé¡µé¢ä¸çæ¯ä¸ªè¡¨åãç¶åï¼ä½ å¯ä»¥ä½¿ç¨ä»¥ä¸ä»»ä½è¯æ³æ¥è·åå个表åï¼
document.forms[index]-
è¿åæ°ç»ä¸æå®ç´¢å¼ï¼
indexï¼ç表åã document.forms[id]-
è¿å ID 为
idç表åã document.forms[name]-
è¿å
name屿§å¼ä¸ºnameç表åã
访é®è¡¨åçå ç´
ä½ å¯ä»¥éè¿æ£æ¥è¡¨åç elements 屿§æ¥è®¿é®è¡¨åä¸ç¨äºå
嫿°æ®çå
ç´ å表ãè¿å°è¿åä¸ä¸ª HTMLFormControlsCollectionï¼å
¶ä¸ååºäºè¡¨åçææç¨æ·æ°æ®è¾å
¥å
ç´ ï¼å
æ¬ <form> çå代å
ç´ ï¼ä»¥å使ç¨å
¶ form 屿§èæä¸ºè¡¨åæåçå
ç´ ã
ä½ ä¹å¯ä»¥éè¿å°è¡¨åå
ç´ name 屿§ä½ä¸º form ç鮿¥è·å该表åçå
ç´ ï¼ä½ä½¿ç¨ elements æ¯ä¸ä¸ªæ´å¥½çæ¹æ³ââå®åªå
å«è¡¨åçå
ç´ ï¼å¹¶ä¸ä¸è½ä¸ form çå
¶ä»å±æ§æ··å使ç¨ã
å ç´ å½åé®é¢
æäºåç§°ä¼å¹²æ° JavaScript 访é®è¡¨åç屿§åå ç´ ã
ä¾å¦ï¼
<input name="id">ä¼ä¼å äº<form id="â¦">ãè¿æå³çform.idä¸ä¼å¼ç¨è¡¨åç idï¼èæ¯å¼ç¨å称为"id"çå ç´ ãè¿ä¹éç¨äºå ¶ä»è¡¨å屿§ï¼ä¾å¦<input name="action">æ<input name="post">ã<input name="elements">ä¼ä½¿è¡¨åçelementséåæ æ³è®¿é®ãå¼ç¨form.elementsç°å¨å°å¼ç¨å个å ç´ ã
è¦é¿å è¿äºå ç´ åç§°çé®é¢ï¼ä½ åºè¯¥ï¼
- å§ç»ä½¿ç¨
elementsé忥é¿å å ç´ åç§°å表å屿§ä¹é´çæ§ä¹ã - åå¿å°
"elements"ä½ä¸ºå ç´ åç§°ã
å¦æä½ ä¸ä½¿ç¨ JavaScriptï¼è¿ä¸ä¼é æé®é¢ã
被è§ä¸ºè¡¨åæ§ä»¶çå ç´
HTMLFormElement.elements å HTMLFormElement.length å
å«ä»¥ä¸å
ç´ ï¼
<button><fieldset><input>ï¼ä½ç±äºåå²åå ï¼type为"image"çå ç´ ä¼è¢«å¿½ç¥ï¼<object><output><select><textarea>
elements è¿åçå表ä¸å
å«å
¶ä»å
ç´ ï¼è¿ä½¿å¾å®æä¸ºå¤çè¡¨åæ¶è·åæéè¦å
ç´ çç»ä½³æ¹æ³ã
示ä¾
å建ä¸ä¸ªæ°ç表åå ç´ ï¼ä¿®æ¹å ¶å±æ§ï¼ç¶åæäº¤ï¼
const f = document.createElement("form"); // å建表å
document.body.appendChild(f); // å°å
¶æ·»å å°ææ¡£ä¸»ä½
f.action = "/cgi-bin/some.cgi"; // æ·»å action å method 屿§
f.method = "POST";
f.submit(); // è°ç¨è¡¨åç submit() æ¹æ³
ä» <form> å
ç´ ä¸æåä¿¡æ¯å¹¶è®¾ç½®ä¸äºå±æ§ï¼
<form name="formA" action="/cgi-bin/test" method="post">
<p>ç¹å»âä¿¡æ¯â以è·å¾è¡¨å详ç»ä¿¡æ¯ï¼æç¹å»â设置â以æ¹åè¿äºä¿¡æ¯ã</p>
<p>
<button type="button" onclick="getFormInfo();">ä¿¡æ¯</button>
<button type="button" onclick="setFormInfo(this.form);">设置</button>
<button type="reset">éç½®</button>
</p>
<textarea id="form-info" rows="15" cols="20"></textarea>
</form>
<script>
function getFormInfo() {
// éè¿è¡¨ååç§°è·å对å
¶çå¼ç¨
const f = document.forms["formA"];
// æä»¬æå
´è¶£ç表å屿§
const properties = [
"elements",
"length",
"name",
"charset",
"action",
"acceptCharset",
"action",
"enctype",
"method",
"target",
];
// è¿ä»£è¿äºå±æ§ï¼å°å®ä»¬è½¬æ¢ä¸ºä¸ä¸ªå符串ï¼ä»¥ä¾¿æä»¬å¯ä»¥æ¾ç¤ºç»ç¨æ·
const info = properties
.map((property) => `${property}ï¼${f[property]}`)
.join("\n");
// 设置表åç <textarea> 以æ¾ç¤ºè¡¨åç屿§
document.forms["formA"].elements["form-info"].value = info; // ä¹å¯ä»¥ä½¿ç¨ document.forms["formA"]['form-info'].value
}
function setFormInfo(f) {
// åæ°åºè¯¥æ¯è¡¨åå
ç´ çå¼ç¨ã
f.action = "a-different-url.cgi";
f.name = "a-different-name";
}
</script>
卿°çªå£ä¸æäº¤è¡¨åï¼<form>ï¼ï¼
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>卿°çªå£æäº¤è¡¨åç示ä¾</title>
</head>
<body>
<form action="test.php" target="_blank">
<p>
<label>ååï¼<input type="text" name="first-name" /></label>
</p>
<p>
<label>å§æ°ï¼<input type="text" name="last-name" /></label>
</p>
<p>
<label><input type="password" name="pwd" /></label>
</p>
<fieldset>
<legend>å® ç©å好</legend>
<p>
<label><input type="radio" name="pet" value="cat" />ç«</label>
</p>
<p>
<label><input type="radio" name="pet" value="dog" />ç</label>
</p>
</fieldset>
<fieldset>
<legend>æ¥æç车è¾</legend>
<p>
<label
><input type="checkbox" name="vehicle" value="Bike" />èªè¡è½¦</label
>
</p>
<p>
<label
><input type="checkbox" name="vehicle" value="Car" />汽车</label
>
</p>
</fieldset>
<p><button>æäº¤</button></p>
</form>
</body>
</html>
è§è
| è§è |
|---|
| HTML > # htmlformelement > |
æµè§å¨å ¼å®¹æ§
åè§
- å®ç°æ¤æ¥å£ç HTML å
ç´ ï¼
<form>ã