ãã©ã¼ã ã <input> ã®ãããªã³ã³ããã¼ã«è¦ç´ ã¯å¤ãã®ç¹å¥ãªããããã£ãã¤ãã³ããæã£ã¦ãã¾ãã
ããããç¥ã£ã¦ããã¨ããã©ã¼ã ã使ã£ã使¥ãã¯ããã«ä¾¿å©ã«ãªãã¾ãã
ããã²ã¼ã·ã§ã³: ãã©ã¼ã ã¨è¦ç´
ããã¥ã¡ã³ããã©ã¼ã ã¯ç¹å¥ãªéå document.forms ã®ã¡ã³ãã§ãã
ãã㯠åä»ãããã éåã§ãååã¨æ°åã®ä¸¡æ¹ã使ã£ã¦ãã©ã¼ã ãåå¾ãããã¨ãã§ãã¾ãã
document.forms.my - name="my" ã®ãã©ã¼ã
document.forms[0] - ããã¥ã¡ã³ãä¸ã®æåã®ãã©ã¼ã
ãã©ã¼ã ããã¤ã¨ãååä»ããããéå forms.elements ã§ãä»»æã®è¦ç´ ãå©ç¨å¯è½ã§ãã
ä¾:
<form name="my">
<input name="one" value="1">
<input name="two" value="2">
</form>
<script>
// ãã©ã¼ã åå¾
let form = document.forms.my; // <form name="my"> element
// è¦ç´ åå¾
let elem = form.elements.one; // <input name="one"> element
alert(elem.value); // 1
</script>
åãååã§è¤æ°ã®è¦ç´ ãããå¯è½æ§ããããããã¯ã©ã¸ãªãã¿ã³ã®å ´åãããããã¾ãã
ãã®å ´åãform.elements[name] ã¯éåã§ããä¾ãã°:
<form>
<input type="radio" name="age" value="10">
<input type="radio" name="age" value="20">
</form>
<script>
let form = document.forms[0];
let ageElems = form.elements.age;
alert(ageElems[0].value); // 10, 1ã¤ç®ã® input ã®å¤
</script>
ãããã®ããã²ã¼ã·ã§ã³ããããã£ã¯ã¿ã°æ§é ã«ã¯ä¾åãã¾ããããã¹ã¦ã®è¦ç´ ã¯ãã©ã¼ã ä¸ã§ã®æ·±ãã«é¢ä¿ãªã form.elements ã§å©ç¨å¯è½ã§ãã
ãã©ã¼ã ã¯ï¼ã¤ä»¥ä¸ã® <fieldset> è¦ç´ ããã®ä¸ã«ãã£ã¦ããå ´åãããã¾ãããããã elements ããããã£ã§ãµãã¼ãããã¦ãã¾ãã
ä¾:
<body>
<form id="form">
<fieldset name="userFields">
<legend>info</legend>
<input name="login" type="text">
</fieldset>
</form>
<script>
alert(form.elements.login); // <input name="login">
let fieldset = form.elements.userFields;
alert(fieldset); // HTMLFieldSetElement
// ãã©ã¼ã ã¨ãã£ã¼ã«ãã»ãã両æ¹ãã input ãåå¾ãããã¨ãã§ãã¾ã
alert(fieldset.elements.login == form.elements.login); // true
</script>
</body>
form.nameããçãè¨æ³ãããã¾ã: form[index/name] ã§è¦ç´ ã«ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ãã
form.elements.login ã®ä»£ããã«ãform.login ã¨æ¸ãã¾ãã
ãããåä½ãã¾ãããå°ããªåé¡ãããã¾ã: ããè¦ç´ ã«ã¢ã¯ã»ã¹ãããã®å¾ã§ãã® name ãå¤ããå ´åãä¾ç¶ã¨ãã¦å¤ãååã§å©ç¨å¯è½ã§ã(æ°ããååã¨åæ§ã«)ã
ä¾ã§ç°¡åã«è¦ãã¾ã:
<form id="form">
<input name="login">
</form>
<script>
alert(form.elements.login == form.login); // true, åã <input>
form.login.name = "username"; // input ã®ååã夿´
// form.elements 㯠name ãæ´æ°:
alert(form.elements.login); // undefined
alert(form.elements.username); // input
// ç´ã¢ã¯ã»ã¹ã¯ä¸¡æ¹ã®ååã使ç¨å¯è½
alert(form.username == form.login); // true
</script>
ããã¯é常ã¯åé¡ã§ã¯ããã¾ããããªããªããã©ã¼ã è¦ç´ ã®ååãå¤ãããã¨ã¯æ®ã©ãªãããã§ãã
徿¹åç §: element.form
ä»»æã®è¦ç´ ã«å¯¾ãã¦ããã©ã¼ã 㯠element.form ã¨ãã¦å©ç¨å¯è½ã§ãããã®ããããã©ã¼ã ã¯ãã¹ã¦ã®è¦ç´ ãåç
§ããè¦ç´ ã¯ãã©ã¼ã ãåç
§ãã¾ãã
ããã¯ãã®å³ã§ã:
ä¾:
<form id="form">
<input type="text" name="login">
</form>
<script>
// form -> element
let login = form.login;
// element -> form
alert(login.form); // HTMLFormElement
</script>
ãã©ã¼ã è¦ç´
ããããã®æ©è½ã«æ³¨æãæããªããããã©ã¼ã ã³ã³ããã¼ã«ã«ã¤ãã¦è©±ãã¾ãããã
input 㨠textarea
é常ããã§ãã¯ããã¯ã¹ã«å¯¾ãã¦ã¯ input.value ã¾ã㯠input.checked ã§å¤ã«ã¢ã¯ã»ã¹ã§ãã¾ãã
ãã®ããã«:
input.value = "New value";
textarea.value = "New text";
input.checked = true; // ãã§ãã¯ããã¯ã¹ãã©ã¸ãªãã¿ã³ã®å ´å
textarea.innerHTML ã§ã¯ãªã textarea.value ã使ãã¾ã決ã㦠textarea.innerHTML ã¯ä½¿ããªãããæ³¨æãã¦ãã ãããããã¯ç¾å¨ã®å¤ã§ã¯ãªãããã¼ã¸ã®åææç¹ã® HTML ã®ã¿ãä¿æãã¦ãã¾ãã
select 㨠option
<select> è¦ç´ ã¯3ã¤ã®éè¦ãªããããã£ãæã£ã¦ãã¾ã:
select.optionsâ<option>è¦ç´ ã®éåã§ã,select.valueâ é¸ã°ãã鏿è¢ã®å¤ã§ã,select.selectedIndexâ é¸ã°ãã鏿è¢ã®çªå·ã§ã.
å¾ã£ã¦ã <select> ã®å¤ãè¨å®ããã®ã« 3ã¤ã®æ¹æ³ãããã¾ãã:
- å¿
è¦ãª
<option>ãè¦ã¤ãã¦ãoption.selectedãtrueã«è¨å®ãã. select.valueã«å¤ãè¨å®ãããselect.selectedIndexã« option ã®çªå·ãè¨å®ããã
æåã®æ¹æ³ãæãæç½ã§ããã(2) 㨠(3) ã¯é常ã¯ãã便å©ã§ãã
ä¾:
<select id="select">
<option value="apple">Apple</option>
<option value="pear">Pear</option>
<option value="banana">Banana</option>
</select>
<script>
// ãã®ï¼è¡ã¯ãã¹ã¦åããã¨ããã¦ãã¾ã
select.options[2].selected = true;
select.selectedIndex = 2;
select.value = 'banana';
</script>
ä»ã®ã³ã³ããã¼ã«ã¨ã¯éãã<select multiple> ã¯è¤æ°ã®é¸æã許å¯ãã¾ãããã®å ´åããã¹ã¦ã®é¸æãããå¤ãåå¾ããã«ã¯ãselect.options ãåç
§ããå¿
è¦ãããã¾ãã
次ã®ããã«ãªãã¾ã:
<select id="select" multiple>
<option value="blues" selected>Blues</option>
<option value="rock" selected>Rock</option>
<option value="classic">Classic</option>
</select>
<script>
// get all selected values from multi-select
let selected = Array.from(select.options)
.filter(option => option.selected)
.map(option => option.value);
alert(selected); // blues,rock
</script>
<select> è¦ç´ ã®å®å
¨ãªä»æ§ã¯ https://html.spec.whatwg.org/multipage/forms.html#the-select-element ã«ããã¾ãã
new Option
option è¦ç´ ã«ã¯ã<option> è¦ç´ ã使ããããã®ç°¡åã§ãã¤ã¹ãªæ§æãããã¾ãã:
option = new Option(text, value, defaultSelected, selected);
ãã©ã¡ã¼ã¿:
textâ option å ã®ããã¹ã,valueâ option ã®å¤,defaultSelectedâtrueã®å ´åãselected屿§ãä½ããã¾ã,selectedâtrueã®å ´åã option ã鏿ããã¾ã.
ä¾:
let option = new Option("Text", "value");
// creates <option value="value">Text</option>
鏿ãããåãè¦ç´ ã§ã:
let option = new Option("Text", "value", true, true);
<option> ã®è¿½å ã®ããããã£Option è¦ç´ ã¯è¿½å ã®ããããã£ãæã£ã¦ãã¾ã:
selected- 鏿ããã¦ããã.
index- ãã®
<select>ã®ä¸ã§ä½çªç®ã® option ã§ããã text- option ã®ããã¹ãã³ã³ãã³ã
ãµããª
ãã©ã¼ã ã®ããã²ã¼ã·ã§ã³:
document.forms- ãã©ã¼ã ã¯
document.forms[name/index]ã§å©ç¨å¯è½ã§ãã form.elements- ãã©ã¼ã è¦ç´ ã¯
form.elements[name/index]ã¾ãã¯åã«form[name/index]ã§å©ç¨å¯è½ã§ããelementsããããã£ã¯<fieldset>ã«å¯¾ãã¦ãæ©è½ãã¾ãã element.form- è¦ç´ ã¯
formããããã£ã§ãã©ã¼ã ãåç §ãã¾ãã
å¤ã¯ input.value, textarea.value, select.value ãªã©ããããã¯ãã§ãã¯ããã¯ã¹ãã©ã¸ãªãã¿ã³ã«å¯¾ãã¦ã¯ input.checked ã¨ãã¦å©ç¨å¯è½ã§ãã
<select> ã®å ´åãã¤ã³ããã¯ã¹ select.selectedIndex ãã鏿è¢ã®éå select.options ãéãã¦å¤ãåå¾ãããã¨ãã§ãã¾ãããããä»ã®è¦ç´ ã®å®å
¨ãªä»æ§ã¯ https://html.spec.whatwg.org/multipage/forms.html ã«ããã¾ãã
ãããã¯ãã©ã¼ã ã使ã£ã¦ä½æ¥ãå§ããããã®åºæ¬ã§ãã æ¬¡ã®ãã£ãã¿ã¼ã§ã¯ãã©ã®è¦ç´ ã§ãçºçããå¯è½æ§ã®ãã focus ã¤ãã³ã㨠blur ã¤ãã³ãã«ã¤ãã¦èª¬æãã¾ãããã»ã¨ãã©ã¯ãã©ã¼ã ã§å¦çããã¾ãã
ã³ã¡ã³ã
<code>ã¿ã°ã使ã£ã¦ãã ãããè¤æ°è¡ã®å ´åã¯<pre>ãã10è¡ãè¶ ããå ´åã«ã¯ãµã³ãããã¯ã¹ã使ã£ã¦ãã ãã(plnkr, JSBin, codepenâ¦)ã