ã¦ã§ããã©ã¼ã ã®ä½æã¯å¸¸ã«è¤éãªä½æ¥ã§ããããã©ã¼ã èªä½ããã¼ã¯ã¢ãããããã¨èªä½ã¯ç°¡åã§ãããããããã®å
¥åæ¬ã妥å½ã§ä¸è²«ãã¦ãããã©ããããã§ãã¯ãããã¨ã¯ãã£ã¨é£ãããåé¡ãã¦ã¼ã¶ã¼ã«ä¼ãããã¨ã¯é çãããããããã¾ãããHTML5 ã§ã¯ããã©ã¼ã ã«æ°ããä»çµã¿ãå°å
¥ããã¾ããã <input>
è¦ç´ ã«æå³ãæã¤æ°ããåã¨ãã¯ã©ã¤ã¢ã³ãå´ã§ãã©ã¼ã ã®å
容ããã§ãã¯ãã使¥ãç°¡åã«ããå¶ç´æ¤è¨¼ã追å ããã¾ãããåºæ¬çãªãããããå¶ç´ã¯ãJavaScript ãå¿
è¦ã¨ããã«ãæ°ãã屿§ãè¨å®ãããã¨ã§ãã§ãã¯ã§ãã¾ãããã£ã¨è¤éãªå¶ç´ã¯å¶ç´æ¤è¨¼ API ã使ç¨ãã¦æ¤æ»ãããã¨ãã§ãã¾ãã
ãããã®æ¦å¿µã®åºæ¬çãªå ¥é (ãµã³ãã«ä»ã) ã¯ããã©ã¼ã æ¤è¨¼ãã¥ã¼ããªã¢ã«ãã覧ãã ããã
ã¡ã¢: HTML ã®å¶ç´æ¤è¨¼ã¯ããµã¼ãã¼å´ã§ã®æ¤è¨¼ã®å¿ è¦æ§ããªãã訳ã§ã¯ããã¾ããã䏿£ãªãã©ã¼ã ã®ãªã¯ã¨ã¹ãã¯ã¯ããã«å°ãªããªããã¨ãäºæ³ããã¾ããã䏿£ãªãªã¯ã¨ã¹ãã¯ãã¾ãã¾ãªæ¹æ³ã§éä¿¡ãããå¯è½æ§ãããã¾ãã
ãããã£ã¦ãã¯ã©ã¤ã¢ã³ãå´ã§è¡ããã¦ãããã¨ã¨ä¸è´ããããã«ããµã¼ãã¼å´ã§ãã©ã¼ã ã®ãã¼ã¿ãå¸¸ã«æ¤è¨¼ããå¿ è¦ãããã¾ãã
çµã¿è¾¼ã¿ã®åºæ¬çãªå¶ç´HTML ã§ã¯ãåºæ¬çãªå¶ç´ã¯ 2 éãã®æ¹æ³ã§å®ç¾©ããã¾ãã
<input>
è¦ç´ ã® type
屿§ã«æå³çã«æãé©åãªå¤ã鏿ãããä¾ãã° email
ã鏿ãããã¨ã§ãå¤ã妥å½ãªã¡ã¼ã«ã¢ãã¬ã¹ã§ãããã©ããããã§ãã¯ããå¶ç´ãèªåçã«ä½æããã¾ããtype
屿§ã®çµè¾¼ã¿å¶ç´ã¯æ¬¡ã®éãã§ãã
ãããã®å
¥ååã®ã©ã¡ãã§ããmultiple
屿§ãè¨å®ããã¦ãããããã®å
¥åæ¬ã«ã«ã³ãåºåãã®ãªã¹ãã§è¤æ°ã®å¤ãè¨å®ãããã¨ãã§ãã¾ãããããã®ä¸ã§ããã§æ¸ãããæ¡ä»¶ã«æºè¶³ããªããã®ãããå ´åã Type mismatch å¶ç´éåãçºçãã¾ãã
ãªããã»ã¨ãã©ã®å ¥ååã«ã¯å é¨çãªå¶ç´ãããã¾ãããå¶ç´æ¤è¨¼ãç¦æ¢ããã¦ãããã®ãã䏿£ãªå¤ãæ£ããæ¢å®å¤ã«å¤æããç¡å®³åã¢ã«ã´ãªãºã ããããã®ãããããã§ãã
æ¤è¨¼é¢é£å±æ§ä¸è¨ã§è¿°ã¹ã type
屿§ã«å ãã¦ãä¸è¨ã®è¦ç´ ãåºæ¬çãªå¶ç´ãè¨è¿°ããã®ã«ä½¿ããã¾ãã
pattern
text
, search
, url
, tel
, email
, password
JavaScript æ£è¦è¡¨ç¾ ï¼global
ãignoreCase
ã multiline
ãã©ã°ãç¡å¹ã§ã³ã³ãã¤ã«ããããã®ï¼ å¤ããã¿ã¼ã³ã«ä¸è´ããå¿
è¦ãããã patternMismatch
å¶ç´éå min
range
, number
æå¹ãªæ°å¤ å¤ããã®å¤ä»¥ä¸ã§ãããã¨ã rangeUnderflow
å¶ç´éå date
, month
, week
æå¹ãªæ¥ä» datetime-local
, time
æå¹ãªæ¥ä»ã¨æå» max
range
, number
æå¹ãªæ°å¤ å¤ããã®å¤ä»¥ä¸ã§ãããã¨ã rangeOverflow
å¶ç´éå date
, month
, week
æå¹ãªæ¥ä» datetime-local
, time
æå¹ãªæ¥ä»ã¨æå» required
text
, search
, url
, tel
, email
, password
, date
, datetime-local
, month
, week
, time
, number
, checkbox
, radio
, file
ããã³ <select>
㨠<textarea>
è¦ç´ ã«ã ãªããè«ç屿§ã®ãããåå¨ããã° trueãåå¨ããªããã° false ãæå³ããã å¤ã¯å¿
é ï¼è¨å®ãããå ´åï¼ã valueMissing
å¶ç´éå step
date
æ¥ã®æ´æ°å¤ step ããªãã©ã«å¤ any
以å¤ã«è¨å®ããã¦ããå ´åãå¤ã¯ min + step ã®æ´æ°åã§ããå¿
è¦ãããã stepMismatch
å¶ç´éå month
æã®æ´æ°å¤ week
é±ã®æ´æ°å¤ datetime-local
, time
ç§ã®æ´æ°å¤ range
, number
æ´æ°å¤ minlength
text
, search
, url
, tel
, email
, password
㨠<textarea>
è¦ç´ æ´æ°é· 空ã§ãªãå ´åãæåæ° (ã³ã¼ããã¤ã³ãæ°) ã¯å±æ§å¤ããå°ãªããªã£ã¦ã¯ãªããªãã <textarea>
ã§ã¯ãæ¹è¡ã¯ãã¹ã¦ (CRLF ã®çµã§ã¯ãªã) 1 æåã«æ£è¦åãããã tooShort
å¶ç´éå maxlength
text
, search
, url
, tel
, email
, password
㨠<textarea>
è¦ç´ æ´æ°é· æåæ° (ã³ã¼ããã¤ã³ãæ°) ã屿§å¤ãè¶
ãã¦ã¯ãããªãã tooLong
å¶ç´éå å¶ç´æ¤è¨¼ããã»ã¹
å¶ç´æ¤è¨¼ã¯ãå¶ç´æ¤è¨¼ API ãéãã¦ãåä¸ã®ãã©ã¼ã è¦ç´ ãã¾ãã¯ãã©ã¼ã ã¬ãã«ã® <form>
è¦ç´ èªä½ã«å¯¾ãã¦è¡ããã¾ããå¶ç´æ¤è¨¼ã¯ä»¥ä¸ã®æ¹æ³ã§è¡ããã¾ãã
checkValidity()
ã¾ã㯠reportValidity()
ã¡ã½ããããã©ã¼ã é¢é£ DOM ã¤ã³ã¿ã¼ãã§ã¤ã¹ (HTMLInputElement
, HTMLSelectElement
, HTMLButtonElement
, HTMLOutputElement
, HTMLTextAreaElement
) ã«å¯¾ãã¦å¼ã³åºããã¨ã«ãã£ã¦ããã®è¦ç´ ã®ã¿ã®å¶ç´ãè©ä¾¡ããã¹ã¯ãªããããã®æ
å ±ãåå¾ã§ããããã«ãã¾ãã checkValidity()
ã¡ã½ããã¯ããã®è¦ç´ ã®å¤ãå¶ç´ã«åæ ¼ãããã©ãããè«çå¤ã§è¿ãã¾ããï¼ããã¯ãµã¤ãã CSS æ¬ä¼¼ã¯ã©ã¹ã® :valid
ã¾ã㯠:invalid
ã®ã©ã¡ããé©ç¨ãããã夿ããéã«ããã©ã¦ã¶ã¼ãå¼ã³åºãã¾ããï¼ä¸æ¹ã reportValidity()
ã¡ã½ããã¯ããããå¶ç´éåãã¦ã¼ã¶ã¼ã«å ±åãã¾ããcheckValidity()
ã¾ã㯠reportValidity()
ã¡ã½ããã HTMLFormElement
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«å¯¾ãã¦å¼ã³åºããã¨ã«ãã£ã¦ãcheckValidity()
ãå¼ã³åºããã¨ã¯ãå¶ç´ãéçã«æ¤è¨¼ããã¨ãããreportValidity()
ãå¼ã³åºãããããã©ã¼ã ãéä¿¡ããããããã¨ã¯ãå¶ç´ã対話çã«æ¤è¨¼ããã¨ããã¾ãã
ã¡ã¢:
novalidate
屿§ã <form>
è¦ç´ ã«è¨å®ããã¦ããå ´åãå¶ç´ã®å¯¾è©±çãªæ¤è¨¼ã¯è¡ããã¾ãããsubmit()
ã¡ã½ããã HTMLFormElement
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§å¼ã³åºãã¦ããå¶ç´æ¤è¨¼ã¯è¡ããã¾ãããè¨ãæããã°ããã®ã¡ã½ããã¯å¶ç´ãæºãããªãã¦ããã©ã¼ã ãã¼ã¿ããµã¼ãã¼ã«éä¿¡ãã¾ãã代ããã«éä¿¡ãã¿ã³ã® click()
ã¡ã½ãããå¼ã³åºãã¦ãã ãããminlength
ããã³ maxlength
å¶ç´ã¯ãã¦ã¼ã¶ã¼ãå
¥åããå¤ã«ã¤ãã¦ã®ã¿æ¤è¨¼ããã¾ããããã°ã©ã ã§å¤ãè¨å®ãããå ´åã checkValidity()
ã¾ã㯠reportValidity()
ãæç¤ºçã«å¼ã³åºãã¦ãããããã®å¶ç´ã¯æ¤è¨¼ããã¾ãããJavaScript ã¨å¶ç´ API ã使ç¨ããã¨ãããè¤éãªå¶ç´ãå®è£ ãããã¨ãã§ãã¾ããä¾ãã°ãè¤æ°ã®ãã£ã¼ã«ããçµã¿åãããå¶ç´ããè¤éãªè¨ç®ãå«ãå¶ç´ãªã©ã§ãã
åºæ¬çã«ã¯ãå¶ç´ã«éåãã¦ãããã©ãããè¨ç®ããããã«ãä½ããã®ãã©ã¼ã ãã£ã¼ã«ãã¤ãã³ã (onchangeãªã©) ã§ JavaScript ãèµ·åããæ¤è¨¼ã®çµæãè¨å®ããããã«ã¡ã½ãã field.setCustomValidity()
ã使ç¨ãããã¨ã§ãã空æååã¯å¶ç´ãæºãããã¦ãããã¨ãæå³ãããã®ä»ã®æååã¯ã¨ã©ã¼ããã£ããã¨ãæå³ãããã®æååãã¦ã¼ã¶ã¼ã«è¡¨ç¤ºããã¨ã©ã¼ã¡ãã»ã¼ã¸ã«ãªãã¾ãã
éµä¾¿çªå·ã®å½¢å¼ã¯ãå½ã«ãã£ã¦ç°ãªãã¾ããã»ã¨ãã©ã®å½ã§ã¯ãå½ã³ã¼ãã®åã«ä»»æã®æ¥é è¾ãä»ãããã¨ãã§ããã ãã§ãªãï¼ãã¤ãã§ã¯ D-
ããã©ã³ã¹ãã¹ã¤ã¹ã§ã¯ F-
ã®ããã«ï¼ãåºå®ã®æ¡æ°ãããªãéµä¾¿çªå·ãæã¤å½ãããã¾ãããã¤ã®ãªã¹ã®ããã«ãç¹å®ã®ä½ç½®ã«ã¢ã«ãã¡ããããå
¥ãããã¨ãã§ãããããè¤éãªæ§é ãæã¤å½ãããã¾ãã
ã¡ã¢: ããã¯å æ¬çãªéµä¾¿çªå·æ¤è¨¼ã©ã¤ãã©ãªã¼ã§ã¯ãªããä¸»è¦æ¦å¿µã®ãã¢ã³ã¹ãã¬ã¼ã·ã§ã³ã§ãã
ä¾ã¨ãã¦ããã®åç´ãªãã©ã¼ã ã®å¶ç´æ¤è¨¼ããã§ãã¯ããã¹ã¯ãªããã追å ãã¾ãã
<form>
<label for="postal-code">éµä¾¿çªå·: </label>
<input type="text" id="postal-code" />
<label for="country">å½: </label>
<select id="country">
<option value="ch">ã¹ã¤ã¹</option>
<option value="fr">ãã©ã³ã¹</option>
<option value="de">ãã¤ã</option>
<option value="nl">ãªã©ã³ã</option>
</select>
<input type="submit" value="æ¤è¨¼" />
</form>
ããã¯ä»¥ä¸ã®ããã«è¡¨ç¤ºããã¾ãã
ã¾ããèªåèªèº«ã®å¶ç´ããã§ãã¯ãã颿°ãæ¸ãã¾ãã
function checkPostalCode() {
// ããããã®å½ã§ãéµä¾¿çªå·ãå¾ãã¹ããã¿ã¼ã³ãå®ç¾©ãã
var constraints = {
ch: [
"^(CH-)?\\d{4}$",
"ã¹ã¤ã¹ã®éµä¾¿çªå·ã¯æç¢ºãª 4 æ¡ã§ããå¿
è¦ãããã¾ããä¾: CH-1950 ã¾ã㯠1950",
],
fr: [
"^(F-)?\\d{5}$",
"ãã©ã³ã¹ã®éµä¾¿çªå·ã¯æç¢ºãª 5 æ¡ã§ããä¾: F-75012 ã¾ã㯠75012",
],
de: [
"^(D-)?\\d{5}$",
"ãã¤ãã®éµä¾¿çªå·ã¯æç¢ºãª 5 æ¡ã§ããä¾: D-12345 ã¾ã㯠12345",
],
nl: [
"^(NL-)?\\d{4}\\s*([A-RT-Z][A-Z]|S[BCE-RT-Z])$",
"ãªã©ã³ãã®éµä¾¿çªå·ã¯æç¢ºãª 4 æ¡ã«ãSAãSDãSS 以å¤ã®2æåãç¶ãã¾ãã",
],
};
// å½ ID ãèªã
const country = document.getElementById("country").value;
// NPA ãã£ã¼ã«ããåå¾
const postalCodeField = document.getElementById("postal-code");
// å¶ç´ãã§ãã«ã¼ãæ§ç¯
const constraint = new RegExp(constraints[country][0], "");
console.log(constraint);
// ãã§ãã¯ãã
if (constraint.test(postalCodeField.value)) {
// éµä¾¿çªå·ã¯å¶ç´ã«å¾ã£ã¦ãããã¨ãå¶ç´æ¤è¨¼ API ã使ã£ã¦ä¼ãã
postalCodeField.setCustomValidity("");
} else {
// éµä¾¿çªå·ãå¶ç´ã«å¾ã£ã¦ããªããã¨ãä¼ããããã«ãå¶ç´æ¤è¨¼ API ã使ç¨ãã¦
// ãã®å½ã§å¿
è¦ãªæ¸å¼ã«ã¤ãã¦ã®ã¡ãã»ã¼ã¸ãä¼ãã
postalCodeField.setCustomValidity(constraints[country][1]);
}
}
ãããããããã <select>
ã® onchange ã¤ãã³ã㨠<input>
ã® oninput ã¤ãã³ãã«ãªã³ã¯ãã¾ãã
window.onload = () => {
document.getElementById("country").onchange = checkPostalCode;
document.getElementById("postal-code").oninput = checkPostalCode;
};
ã¢ãããã¼ãåã«ãã¡ã¤ã«ã®å¤§ãããå¶é
ããä¸ã¤ã®ä¸è¬çãªå¶ç´ã¯ãã¢ãããã¼ãããããã¡ã¤ã«ã®ãµã¤ãºãå¶éãããã¨ã§ãããã¡ã¤ã«ããµã¼ãã¼ã«éä¿¡ãããåã«ãã¯ã©ã¤ã¢ã³ãå´ã§ããããã§ãã¯ããã«ã¯ãå¶ç´æ¤è¨¼ APIãç¹ã« field.setCustomValidity()
ã¡ã½ããããå¥ã® JavaScript APIãããã§ã¯ãã¡ã¤ã« API ã¨çµã¿åãããå¿
è¦ãããã¾ãã
ãã¡ãã HTML é¨åã§ãã
<label for="fs">75KB ãããå°ãããã¡ã¤ã«ã鏿ãã¦ãã ããã</label>
<input type="file" id="fs" />
次ã®ããã«è¡¨ç¤ºããã¾ãã
JavaScript ã¯é¸æããããã¡ã¤ã«ãèªã¿è¾¼ã¿ã File.size()
ã¡ã½ããã使ã£ã¦ãã®ãµã¤ãºãåå¾ãããããï¼ãã¼ãã³ã¼ããããï¼å¶éå¤ã¨æ¯è¼ããéåããã£ãå ´å㯠Constraint API ãå¼ã³åºãã¦ãã©ã¦ã¶ã¼ã«éç¥ãã¾ãã
function checkFileSize() {
const fs = document.getElementById("fs");
const files = fs.files;
// 鏿ããã¦ãããã¡ã¤ã«ãï¼å°ãªãã¨ãï¼ 1 ã¤ããå ´å
if (files.length > 0) {
if (files[0].size > 75 * 1000) {
// å¶ç´ããã§ãã¯
fs.setCustomValidity("鏿ããããã¡ã¤ã«ã¯ 75 kB ãã大ããã¦ã¯ããã¾ããã");
fs.reportValidity();
return;
}
}
// ã«ã¹ã¿ã å¶ç´éåã¯ãªã
fs.setCustomValidity("");
}
æå¾ã«ããã®ã¡ã½ãããæ£ããã¤ãã³ãã«ããã¯ãã¾ãã
window.onload = () => {
document.getElementById("fs").onchange = checkFileSize;
};
å¶ç´æ¤è¨¼ã®è¦è¦çã¹ã¿ã¤ã«
å¶ç´æ¡ä»¶ãè¨å®ããã ãã§ãªããã¦ã§ãéçºè ã¯ãã¦ã¼ã¶ã¼ã«ã©ã®ãããªã¡ãã»ã¼ã¸ã表示ããããã©ã®ãããªã¹ã¿ã¤ã«ã«ããããå¶å¾¡ãããã¨èãã¦ãã¾ãã
è¦ç´ ã®å¤è¦ã®å¶å¾¡CSS ã®æ¬ä¼¼ã¯ã©ã¹ã§ãè¦ç´ ã®å¤è¦ãå¶å¾¡ãããã¨ãã§ãã¾ãã
:required ããã³ :optional æ¬ä¼¼ã¯ã©ã¹:required
㨠:optional
æ¬ä¼¼ã¯ã©ã¹ã§ãrequired
屿§ããããã¾ãã¯ãªããã©ã¼ã è¦ç´ ã«ä¸è´ããã»ã¬ã¯ã¿ã¼ãæ¸ããã¨ãã§ãã¾ãã
:placeholder-shown
ãåç
§ãã¦ãã ããã
:valid
㨠:invalid
æ¬ä¼¼ã¯ã©ã¹ã¯ã <input> è¦ç´ ã®å
容ããã®åã®è¨å®ã«å¿ãã¦ãããããæ¤è¨¼ãããããæ¤è¨¼ã«å¤±æãããã表ãããã«ä½¿ç¨ãã¾ãããããã®ã¯ã©ã¹ã¯ãæå¹ã¾ãã¯ç¡å¹ãªãã©ã¼ã è¦ç´ ã«ã¹ã¿ã¤ã«ãä¸ãããã¨ã§æ¸å¼ãæ£ããè¦ç´ ã¨æ£ãããªãè¦ç´ ã®èå¥ããããããã¾ãã
å¶ç´éåã®ããã¹ããå¶å¾¡ããã«ã¯ã以ä¸ã®é ç®ãæç¨ã§ãã
以ä¸ã®è¦ç´ ã® setCustomValidity(message)
ã¡ã½ãã
<fieldset>
ã¡ã¢: fieldset è¦ç´ ã«ã«ã¹ã¿ã æ¤è¨¼ã¡ãã»ã¼ã¸ãè¨å®ãã¦ããå¤ãã®ãã©ã¦ã¶ã¼ã§ã¯éä¿¡ãææ¢ã§ãã¾ããã<input>
<output>
<select>
<button>
è¦ç´ ã® submit
åãã¾ã㯠input
è¦ç´ ã® submit åããã以å¤ã®ãã¿ã³ã¯å¶ç´æ¤è¨¼ã®å¯¾è±¡ã«ã¯ãªãã¾ããã<textarea>
ValidityState
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãä¸è¨ã®è¦ç´ åã® validity
ããããã£ã«ãã£ã¦è¿ããããªãã¸ã§ã¯ãã説æãã¾ããå
¥åãããå¤ãç¡å¹ã«ãªãå¯è½æ§ãããæ§ã
ãªæ¹æ³ã表ãã¦ãã¾ããããããåãããã¨ãè¦ç´ ã®å¤ãæå¹ã§ãªãå ´åã«ããªãæ¤è¨¼ã«å¤±æããã®ãã説æãããã¨ãã§ãã¾ãã
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