Baseline Widely available
<input>
è¦ç´ ã® tel
åã¯ãã¦ã¼ã¶ã¼ã«é»è©±çªå·ãå
¥åã¾ãã¯ç·¨éãããããã«ä½¿ç¨ãã¾ãã <input type="email">
ã <input type="url">
ã¨ã¯ç°ãªããéä¿¡åã«å¤ãç¹å®ã®æ¸å¼ã§ããã¨èªåçã«ã¯æ¤è¨¼ããã¾ãããé»è©±çªå·ã®æ¸å¼ã¯ä¸çä¸ã§æ§ã
ã ããã§ãã
<label for="phone">
Enter your phone number:<br />
<small>Format: 123-456-7890</small>
</label>
<input
type="tel"
id="phone"
name="phone"
pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}"
required />
label {
display: block;
font:
1rem "Fira Sans",
sans-serif;
}
input,
label {
margin: 0.4rem 0;
}
tel
ã®å
¥åæ¬ã¯æ©è½çã«æ¨æºã® text
å
¥åæ¬ã¨åãã§ããã¨ããäºå®ã«ããããããã便å©ãªç¨éãæä¾ãã¾ãããã£ã¨ãæã£åãæ©ã表ããã®ã¯ãã¢ãã¤ã«ãã©ã¦ã¶ã¼ â ç¹ã«æºå¸¯é»è©±ã®ãã® â ã§ã¯ãé»è©±çªå·ã®å
¥åã«æé©åãããå°ç¨ã®ãã¼ãããã表示ãããã¨ãããã¾ããé»è©±çªå·ã®å°ç¨ã®å
¥ååã使ç¨ããã¨ãã«ã¹ã¿ã æ¤è¨¼ã追å ãã¦é»è©±çªå·ã®æ±ãããã£ã¨ä¾¿å©ã«ãããã¨ãã§ãã¾ãã
ã¡ã¢: tel
åã«å¯¾å¿ãã¦ããªããã©ã¦ã¶ã¼ã§ã¯ãé常㮠text å
¥åæ¬ã§ä»£ç¨ããã¾ãã
<input>
è¦ç´ ã® value
屿§ã«ã¯ãé»è©±çªå·ã表ãæååãã¾ãã¯ç©ºæåå (""
) ã®æååãå
¥ãã¾ãã
ã°ãã¼ãã«å±æ§ããã³ãåã«é¢ä¿ãªããã¹ã¦ã® <input>
è¦ç´ ãæä½ãã屿§ã«å ããé»è©±çªå·åã®å
¥åæ¬ã¯æ¬¡ã®å±æ§ã«ã対å¿ãã¦ãã¾ãã
list 屿§ã®å¤ã¯ãåãææ¸å
ã«ãã <datalist>
è¦ç´ ã® id
ã§ãã <datalist>
ã¯ããã®å
¥åæ¬ã§ã¦ã¼ã¶ã¼ã«ææ¡ããããã®äºåå®ç¾©ãããå¤ã®ãªã¹ããæä¾ãã¾ãããªã¹ãã®ä¸ã®å¤ã®ãã¡ type
ã¨äºææ§ã®ãªããã®ã¯ãææ¡ããããªãã·ã§ã³ã«ã¯å«ã¾ãã¾ãããæä¾ãããå¤ã¯ææ¡ã§ãããè¦ä»¶ã§ã¯ããã¾ãããã¦ã¼ã¶ã¼ã¯ãã®å®ç¾©æ¸ã¿ãªã¹ããã鏿ãããã¨ããç°ãªãå¤ãæä¾ãããã¨ãã§ãã¾ãã
ã¦ã¼ã¶ã¼ãé»è©±çªå·æ¬ã«å
¥åãããã¨ãã§ããï¼UTF-16 ã³ã¼ãåä½ã§ã®ï¼æå¤§æååé·ã§ãã 0 以ä¸ã®æ´æ°å¤ã§ããå¿
è¦ãããã¾ãã maxlength
ãæå®ããã¦ããªãããç¡å¹ãªå¤ãæå®ããã¦ããã¨ãé»è©±çªå·æ¬ã«ã¯æå¤§é·ãè¨å®ããã¾ããããã®å¤ã¯ minlength
ã®å¤ä»¥ä¸ã§ããå¿
è¦ãããã¾ãã
ãã£ã¼ã«ãã«å
¥åãããé·ãã UTF-16 ã³ã¼ãåä½ã§ maxlength
ã®é·ããè¶
ãã¦ããã¨ããã®å
¥åæ¬ã¯å¶ç´æ¤è¨¼ã«å¤±æãã¾ããå¶ç´æ¤è¨¼ã¯ãã¦ã¼ã¶ã¼ã«ãã£ã¦å¤ã夿´ãããå ´åã«ã®ã¿é©ç¨ããã¾ãã
ã¦ã¼ã¶ã¼ãé»è©±çªå·æ¬ã«å
¥åãããã¨ãã§ããï¼UTF-16 ã³ã¼ãåä½ã§ã®ï¼æå°æååé·ã§ããããã¯éè² ã®æ´æ°å¤ã§ã maxlength
ã§æå®ãããå¤ä»¥ä¸ã§ããå¿
è¦ãããã¾ãã minlength
ãæå®ããã¦ããªãããç¡å¹ãªå¤ãæå®ããã¦ããã¨ãé»è©±çªå·æ¬ã«ã¯æå°é·ãè¨å®ããã¾ããã
å
¥åæ¬ã®ããã¹ãã®é·ãã UTF-16 ã³ã¼ãåä½ã§ minlength
ã®é·ããããçãã¨ãé»è©±çªå·æ¬ã¯å¶ç´æ¤è¨¼ã«å¤±æãã¾ããå¶ç´æ¤è¨¼ã¯ãã¦ã¼ã¶ã¼ã«ãã£ã¦å¤ã夿´ãããå ´åã«ã®ã¿é©ç¨ããã¾ãã
pattern
屿§ã¯ãæå®ããå ´åã¯æ£è¦è¡¨ç¾ã§ãããå
¥åæ¬ã® value
ãå¶ç´æ¤è¨¼ã«åæ ¼ããããã«ã¯ããã¨ä¸è´ããªããã°ãªãã¾ããããã㯠RegExp
åã§ä½¿ç¨ããã JavaScript ã®å¦¥å½ãªæ£è¦è¡¨ç¾ã§ããå¿
è¦ããããããã¯æ£è¦è¡¨ç¾ã®ã¬ã¤ãã§è¨è¿°ããã¦ãã¾ããæ£è¦è¡¨ç¾ãã³ã³ãã¤ã«ãããã¨ãã« 'u'
ãã©ã°ãæå®ãããã®ã§ããã¿ã¼ã³ã¯ ASCII ã§ã¯ãªã Unicode ã³ã¼ããã¤ã³ãã®ä¸¦ã³ã¨ãã¦æ±ããã¾ãããã¿ã¼ã³ã®ããã¹ããã¹ã©ãã·ã¥ã§å²ãã§ã¯ããã¾ããã
æå®ããããã¿ã¼ã³ããªãããç¡å¹ã§ããå ´åã¯ãæ£è¦è¡¨ç¾ã¯é©ç¨ãããããã®å±æ§ã¯å®å ¨ã«ç¡è¦ããã¾ãã
ã¡ã¢: title
屿§ã使ç¨ãã¦ããã¹ããæå®ããã¨ãå¤ãã®ãã©ã¦ã¶ã¼ã§ãã¿ã¼ã³ã«ä¸è´ããè¦ä»¶ãä½ã§ãããã説æãããã¼ã«ãããã表示ãããã¨ãã§ãã¾ããè¿ãã«ä»ã®èª¬æããã¹ããé
ç½®ããå¿
è¦ãããã¾ãã
詳細ã¨ä¾ã«ã¤ãã¦ã¯å¾è¿°ã®ãã¿ã¼ã³æ¤è¨¼ãåç §ãã¦ãã ããã
placeholderplaceholder
屿§ã¯æååã§ããã®æ¬ã«ã©ã®ãããªç¨®é¡ã®æ
å ±ãæ±ãããããã«ã¤ãã¦ã®ã¦ã¼ã¶ã¼ã«å¯¾ããçããã³ããæä¾ãã¾ããããã¯æ±ãããããã¼ã¿ã®ç¨®é¡ãç´¹ä»ããä¸èªã¾ãã¯çãå¥ã§ããã説æçãªã¡ãã»ã¼ã¸ã§ã¯ããã¾ãããããã¹ãã«ã¯æ¹è¡ãå«ãããã¨ã¯ã§ãã¾ããã
ã³ã³ããã¼ã«ã®å 容ãããæ¸åæ¹å (LTR ã¾ã㯠RTL) ã§ãããã®ã®ããã¬ã¤ã¹ãã«ãã¼ãéã®æ¹åã«è¡¨ç¤ºããå¿ è¦ãããå ´åã Unicode åæ¹åã¢ã«ã´ãªãºã æ¸å¼æåã使ç¨ãã¦ãã¬ã¤ã¹ãã«ãã¼ã®ä¸ã§æ¸åæ¹åã䏿¸ããããã¨ãã§ãã¾ãã詳ããã¯ãåæ¹åããã¹ãã§ã® Unicode ã³ã¼ãã®ä½¿ãæ¹ï¼è±èªï¼ãåç §ãã¦ãã ããã
ã¡ã¢: å¯è½ã§ããã° placeholder
ã使ç¨ãããã¨ã¯é¿ãã¦ãã ããããã©ã¼ã ã説æããä»ã®æ¹æ³ã»ã©æå³è«çã«æçã§ã¯ãªããã³ã³ãã³ãã«äºæããªãæè¡çãªåé¡ãå¼ãèµ·ããå¯è½æ§ãããã¾ãã詳ããã¯ã<input>
ã®ã©ãã«ãåç
§ãã¦ãã ããã
è«ç屿§ã§ãåå¨ããã°ãã¦ã¼ã¶ã¼ãç·¨éãããã¨ãã§ããªããã¨ã表ãã¾ãããããã value
ã¯ã JavaScript ã³ã¼ãããç´æ¥ HTMLInputElement
ã® value
ããããã£ãè¨å®ãããã¨ã§å¤æ´ãããã¨ãã§ãã¾ãã
ã¡ã¢: èªã¿åãå°ç¨ãã£ã¼ã«ãã¯å¤ãæã¦ãªãããã required
㯠readonly
屿§ãæå®ããã¦ããå
¥åæ¬ã«ã¯å¹æãããã¾ããã
size
屿§ã¯æ°å¤ã§ãããå
¥åæ¬ã®å¹
ã使ååã¨ãããã示ãã¾ããå¤ã¯ã¼ããã大ããªæ°å¤ã§ããå¿
è¦ããããæ¢å®å¤ã¯ 20 ã§ããæåã®å¹
ã¯æ§ã
ã§ãããããããã¯æ£ç¢ºã§ã¯ãªãå¯è½æ§ããããä¾åãããã¨ã¯ã§ãã¾ãããçµæã®å
¥åæ¬ã¯æåæ°ããã©ã³ãï¼ä½¿ç¨ä¸ã® font
è¨å®ï¼ã«ãã£ã¦ãæå®ãããæåæ°ããçããªã£ããåºããªã£ãããããã¨ãããã¾ãã
ããã¯ã¦ã¼ã¶ã¼ããã£ã¼ã«ãã«å
¥åãããã¨ãã§ããæåæ°ã®å¶éãè¨å®ãããã®ã§ã¯ããã¾ãããããã¯ä¸åº¦ã«è¦ããæåæ°ããããæå®ããã ãã§ããå
¥åãã¼ã¿ã®é·ãã®ä¸éãè¨å®ããã«ã¯ã maxlength
屿§ã使ç¨ãã¦ãã ããã
ã¦ã§ãã«ããã¦ãé»è©±çªå·ã¯ã¨ã¦ãããåéããããã¼ã¿ã®ç¨®é¡ã§ããä¾ãã°ãä½ããã®ä¼å¡ç»é²ãé信販売ãµã¤ãã§ãååå¼ãç·æ¥æé£çµ¡ã®ç®çã§ã¦ã¼ã¶ã¼ã«é»è©±çªå·ãå°ãããã¨ãè¯ãããã¾ããä¸è¬çã«ã©ã®ããã«é»è©±çªå·ãå ¥åãããããèããã°ãæ®å¿µãªããã1 ã¤ã®ãµã¤ãºã§ãã¹ã¦ã«åãããããªè§£æ±ºçã¯ç¾å®çã§ã¯ããã¾ããã
幸ããèªåã§ãµã¤ãã®è¦ä»¶ãæ¤è¨ããèªåã§é©åãªã¬ãã«ã®æ¤è¨¼ãå®è£ ãããã¨ãã§ãã¾ãã詳ããã¯ã以ä¸ã®æ¤è¨¼ãã覧ãã ããã
ã«ã¹ã¿ã ãã¼ãã¼ã<input type="tel">
ã®ä¸»ãªå©ç¹ã®ä¸ã¤ã¯ãæºå¸¯é»è©±ã®ãã©ã¦ã¶ã¼ã«é»è©±çªå·ãå
¥åããããã®ç¹å¥ãªãã¼ãã¼ãã表示ããããã¨ã§ããä¾ãã°ãããã¤ãã®ç«¯æ«ã§ãã¼ããããã©ã®ããã«è¡¨ç¤ºããããã示ãã¾ãã
æãåºæ¬çãªãã©ã¼ã ã«ããã¦ã tel å ¥åæ¬ã¯æ¬¡ã®ããã«å®è£ ãããã¨ãã§ãã¾ãã
<label for="telNo">é»è©±çªå·:</label>
<input id="telNo" name="telNo" type="tel" />
ããã§ã¯ä½ã䏿è°ãªãã¨ã¯èµ·ããã¾ããããµã¼ãã¼ã«éä¿¡ãããã¨ãä¸è¨ã®å
¥åã®ãã¼ã¿ã¯ãä¾ãã° telNo=+12125553151
ã®ããã«è¡¨ç¾ããã¾ãã
å
¥åãã¼ã¿ãã©ã®ãããªå½¢å¼ãåãã¹ãããæèä¸ã®ãã³ããæä¾ãããã¨ãå½¹ç«ã¤å ´åãããã¾ããããã¯ããã¼ã¸ã®ãã¶ã¤ã³ãããããã® <input>
ã«èª¬æçãªã©ãã«ãæä¾ãã¦ããªãå ´åã«ç¹ã«éè¦ã«ãªããã¨ãããã¾ããããããã¬ã¤ã¹ãã«ãã¼ã®ç»å ´ããå ´é¢ã§ãããã¬ã¤ã¹ãã«ãã¼ã¯ value
ãåãã¹ããã©ã¼ã ã示ãå¤ã§ãæå¹ãªå¤ã®ä¾ãæç¤ºãã¾ãããã®å¤ã¯è¦ç´ ã® value
ã ""
ã®æã«ã¨ãã£ããããã¯ã¹å
ã«è¡¨ç¤ºããã¾ããããã¯ã¹ã«ãã¼ã¿ãå
¥åãããã¨ããã¬ã¤ã¹ãã«ãã¼ãæ¶ããããã¯ã¹ã空ã«ãªãã¨ããã¬ã¤ã¹ãã«ãã¼ãåã³è¡¨ç¤ºããã¾ãã
ããã§ã¯ã 123-4567-8901
ã¨ãããã¬ã¤ã¹ãã«ãã¼ãæã¤ tel
å
¥åæ¬ãããã¾ããç·¨éãã£ã¼ã«ãã®å
容ãæä½ããã¨ããã¬ã¤ã¹ãã«ãã¼ãæ¶ãããç¾ããããããã¨ã«æ³¨æãã¦ãã ããã
<input id="telNo" name="telNo" type="tel" placeholder="123-4567-8901" />
å
¥åæ¬ã®å¯¸æ³ã®å¶å¾¡
å ¥åããã¯ã¹ã®ç©ççãªé·ãã ãã§ãªããå ¥åããã¹ãèªä½ã«è¨±ãããæå°ã»æå¤§ã®é·ããå¶å¾¡ãããã¨ãã§ãã¾ãã
ç©ççãªå ¥åæ¬ã®å¯¸æ³å
¥åããã¯ã¹ã®ç©ççãªå¤§ããã¯ã size
屿§ã§å¶å¾¡ãããã¨ãå¯è½ã§ãããã®å±æ§ã«ãããå
¥åããã¯ã¹ãä¸åº¦ã«è¡¨ç¤ºã§ããæåæ°ãæå®ãããã¨ãã§ãã¾ãããã®ä¾ã§ã¯ãä¾ãã° tel
ã®ã¨ãã£ããããã¯ã¹ã®å¹
㯠20 æåã§ãã
<input id="telNo" name="telNo" type="tel" size="20" />
è¦ç´ ã®å¤ã®é·ã
size
ã¯ãå
¥åãããé»è©±çªå·ã®é·ãã®å¶éã¨ã¯å¥ã®ãã®ã§ããå
¥åãããé»è©±çªå·ã®é·ãã®æå°å¤ã¯ minlength
屿§ã§æå®ã§ããåæ§ã«ãå
¥åãããé»è©±çªå·ã®é·ãã®æå¤§å¤ã¯ maxlength
屿§ã§è¨å®ãããã¨ãã§ãã¾ãã
以ä¸ã®ä¾ã§ã¯ãå¹ 20 æåã®é»è©±çªå·å ¥åããã¯ã¹ãçæããå ¥åå 容㯠9 æå以ä¸ã 14 æå以ä¸ã§ãããã¨ãè¦æ±ãã¦ãã¾ãã
<input
id="telNo"
name="telNo"
type="tel"
size="20"
minlength="9"
maxlength="14" />
ã¡ã¢: ä¸è¨ã®å±æ§ã¯æ¤è¨¼ã«å½±é¿ãã¾ãã - ä¸è¨ã®ä¾ã§ã¯ãå¤ã®é·ãã 9 æåæªæºãã¾ã㯠14 æå以ä¸ã®å ´åãå ¥åã¯ç¡å¹ã¨ã¿ãªããã¾ããã»ã¨ãã©ã®ãã©ã¦ã¶ã¼ã§ã¯ãæå¤§é·ãè¶ ããå¤ãå ¥åãããã¨ããã§ãã¾ããã
æ¢å®ã®ãªãã·ã§ã³ã®æä¾ value 屿§ãè¨ä½¿ç¨ããåä¸ã®æ¢å®å¤ã®æä¾ä»ã¨åæ§ã«ã tel
å
¥åæ¬ã« value
屿§ãè¨å®ãããã¨ã§æ¢å®å¤ãæå®ãããã¨ãã§ãã¾ãã
<input id="telNo" name="telNo" type="tel" value="333-4444-4444" />
ææ¡å¤ã®æä¾
ããã«ä¸æ©é²ãã§ãé»è©±çªå·ã®æ¢å®å¤ã®ãªã¹ããç¨æããããããã¦ã¼ã¶ã¼ã鏿ã§ããããã«ãããã¨ãå¯è½ã§ããããã«ã¯ list
屿§ã使ç¨ãã¾ããããã¯ã¦ã¼ã¶ã¼ããããã®é¸æè¢ã«éå®ãã¾ãããããã使ãããé»è©±çªå·ãããè¿
éã«é¸æã§ããããã«ãã¾ãããã㯠autocomplete
ã¸ã®ãã³ããæä¾ãã¾ãã list
屿§ã¯ <datalist>
è¦ç´ ã® ID ãæå®ãããã®è¦ç´ 㯠1 ã¤ã®ææ¡å¤ã«ã¤ã 1 ã¤ã® <option>
è¦ç´ ãå«ãã§ãããããããã® option
ã® value
ã¯é»è©±çªå·å
¥åããã¯ã¹ã®å¯¾å¿ããææ¡å¤ã¨ãªã£ã¦ãã¾ãã
<label for="telNo">é»è©±çªå·: </label>
<input id="telNo" name="telNo" type="tel" list="defaultTels" />
<datalist id="defaultTels">
<option value="111-1111-1111"></option>
<option value="122-2222-2222"></option>
<option value="333-3333-3333"></option>
<option value="344-4444-4444"></option>
</datalist>
<datalist>
è¦ç´ ã¨ãã® <option>
ãé
ç½®ãããã¨ããã©ã¦ã¶ã¼ã¯é»è©±çªå·ã®åè£ã¨ãã¦æå®ãããå¤ãæä¾ãã¾ããããã¯é常ãåè£ãå«ããããã¢ããã¾ãã¯ãããããã¦ã³ã¡ãã¥ã¼ã¨ãã¦è¡¨ç¤ºããã¾ããå
·ä½çãªä½¿ãåæã¯ãã©ã¦ã¶ã¼ã«ãã£ã¦ç°ãªãããããã¾ããããé常ãç·¨éããã¯ã¹ãã¯ãªãã¯ããã¨ãææ¡ãããé»è©±çªå·ããããããã¦ã³ã§è¡¨ç¤ºããã¾ãããã®å¾ãã¦ã¼ã¶ã¼ãæåãå
¥åããã¨ããªã¹ãã調æ´ããããã£ã«ã¿ãªã³ã°ãããä¸è´ããå¤ã®ã¿ã表示ããã¾ããã¦ã¼ã¶ã¼ã鏿ããããç¬èªã®å¤ãå
¥åããã¾ã§ãå
¥åãããæåãã¨ã«ãªã¹ããçµãè¾¼ã¾ãã¾ãã
以ä¸ã¯ããã®æ§åã®ã¹ã¯ãªã¼ã³ã·ã§ããã§ãã
æ¤è¨¼ä»¥åã«ã触ãã¾ããããé»è©±çªå·ã§ä¸è½ã®ã¯ã©ã¤ã¢ã³ãå´æ¤è¨¼æ¹æ³ãæä¾ãããã¨ã¯é常ã«å°é£ã§ããã§ã¯ãã©ãããã°ããã®ã§ãããããããã¤ãã®é¸æè¢ãèãã¦ã¿ã¾ãããã
è¦å: HTML ã®ãã©ã¼ã æ¤è¨¼ã¯ãå ¥åããããã¼ã¿ãæ£ããå½¢å¼ã§ãããã¨ãä¿è¨¼ããã¹ã¯ãªããã®ä»£ç¨ã«ã¯ãªãã¾ãã>ã HTML ã調æ´ãã¦æ¤è¨¼ããããæããããå®å ¨ã«åé¤ããããããã¨ã¯ã¨ã¦ãç°¡åã«ã§ãã¾ãã HTML ãå®å ¨ã«ãã¤ãã¹ãããµã¼ãã¼ã«ç´æ¥ãã¼ã¿ãéä¿¡ãããã¨ãå¯è½ã§ãããµã¼ãã¼å´ã®ã³ã¼ããåä¿¡ãããã¼ã¿ã®æ¤è¨¼ã«å¤±æããå ´åãä¸é©åãªå½¢å¼ã®ãã¼ã¿ï¼ã¾ãã¯å¤§ãããããã¼ã¿ãééã£ã種é¡ã®ãã¼ã¿ãªã©ï¼ãéä¿¡ãããå ´åã«ç½å®³ãçºçããããããããã¾ãã
é»è©±çªå·ãå¿ é ã«ãã空ã®å
¥åãç¡å¹ã¨ãã¦ããµã¼ãã¼ã«éä¿¡ãããªãããã«ããã«ã¯ã required
屿§ã使ç¨ãã¾ããä¾ãã°ããã®ãã㪠HTML ã使ã£ã¦ã¿ã¾ãããã
<form>
<div>
<label for="telNo">é»è©±çªå·ãå
¥åãã¦ãã ãã (å¿
é ): </label>
<input id="telNo" name="telNo" type="tel" required />
<span class="validity"></span>
</div>
<div>
<button>éä¿¡</button>
</div>
</form>
ããã¦ãæå¹ãªå ¥åããã§ãã¯ãã¼ã¯ã§ãç¡å¹ãªå ¥åããããã³ã§å¼·èª¿ããããã«ã以ä¸ã® CSS ãè¨è¿°ãã¦ã¿ã¾ãããã
div {
margin-bottom: 10px;
position: relative;
}
input[type="number"] {
width: 100px;
}
input + span {
padding-right: 30px;
}
input:invalid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
color: #8b0000;
}
input:valid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
color: #009000;
}
åºåçµæã¯æ¬¡ã®ããã«ãªãã¾ãã
ãã¿ã¼ã³ã«ãã夿¤è¨¼å
¥åãããæ°å¤ãããã«å¶éããç¹å®ã®ãã¿ã¼ã³ã«é©åããããå ´åã¯ãpattern
屿§ã使ç¨ãã¦ãã ããããã®å±æ§ã¯ãå
¥åãããå¤ãä¸è´ãã¹ãæ£è¦è¡¨ç¾ãå¤ã¨ãã¦åãã¾ãã
ãã®ä¾ã§ã¯ãåã¨åã CSS ã使ç¨ãã¾ããã HTML ã¯æ¬¡ã®ããã«å¤æ´ãã¾ãã
<form>
<div>
<label for="telNo">
é»è©±çªå·ãå
¥åãã¦ãã ãã (xxx-xxx-xxxx å½¢å¼ã§):
</label>
<input
id="telNo"
name="telNo"
type="tel"
required
pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" />
<span class="validity"></span>
</div>
<div>
<button>éä¿¡</button>
</div>
</form>
div {
margin-bottom: 10px;
position: relative;
}
input[type="number"] {
width: 100px;
}
input + span {
padding-right: 30px;
}
input:invalid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
color: #8b0000;
}
input:valid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
color: #009000;
}
å ¥åãããå¤ã¯ã xxx-xxx-xxxx ã¨ãããã¿ã¼ã³ã«ä¸è´ããªãéããç¡å¹ã§ããã¨å ±åããããã¨ã«æ³¨æãã¦ãã ãããä¾ãã°ã 41-323-421 ã¯åãå ¥ãããã¾ããã 800-MDN-ROCKS ãåæ§ã§ãããããã 865-555-6502 ã¯åçããã¾ããå®éã®ã¢ããªã±ã¼ã·ã§ã³ã§ã¯ãã¦ã¼ã¶ã¼ã®ãã±ã¼ã«ã«å¿ãã¦ä½¿ç¨ãããã¿ã¼ã³ã夿´ããå¿ è¦ãããã§ãããã
ä¾ãã®ä¾ã§ã¯ãã¦ã¼ã¶ã¼ã«ã©ã®å½ã«ãããã鏿ããã <select>
è¦ç´ ã¨ãé»è©±çªå·ã®åé¨åãå
¥åãããä¸é£ã® <input type="tel">
è¦ç´ ã表示ãã¾ããè¤æ°ã® tel
å
¥åæ¬ã使ã£ã¦ã¯ãããªãã¨ããçç±ã¯ããã¾ããã
ããããã®å
¥åæ¬ã«ã¯ placeholder
屿§ããããç®ã®è¦ããã¦ã¼ã¶ã¼ãä½ãå
¥åããã°ãããã®ãã³ãã表示ãã¾ããã¾ã pattern
ã§ãæ±ããããé¨åã§æå®ãããæåæ°ãå¼·å¶ãã¾ããããã« aria-label
屿§ããããã¹ã¯ãªã¼ã³ãªã¼ãã¼ã®ã¦ã¼ã¶ã¼ã«ä½ãå
¥åããã°ãããã®ãã³ããèªã¿ä¸ãããã¨ãã§ããããã«ãªã£ã¦ãã¾ãã
<form>
<div>
<label for="country">å½ã鏿ãã¦ãã ãã:</label>
<select id="country" name="country">
<option>UK</option>
<option selected>US</option>
<option>Germany</option>
</select>
</div>
<div>
<p>é»è©±çªå·ãå
¥åãã¦ãã ãã:</p>
<span class="areaDiv">
<input
id="areaNo"
name="areaNo"
type="tel"
required
placeholder="Area code"
pattern="[0-9]{3}"
aria-label="Area code" />
<span class="validity"></span>
</span>
<span class="number1Div">
<input
id="number1"
name="number1"
type="tel"
required
placeholder="First part"
pattern="[0-9]{3}"
aria-label="First part of number" />
<span class="validity"></span>
</span>
<span class="number2Div">
<input
id="number2"
name="number2"
type="tel"
required
placeholder="Second part"
pattern="[0-9]{4}"
aria-label="Second part of number" />
<span class="validity"></span>
</span>
</div>
<div>
<button>éä¿¡</button>
</div>
</form>
ãã® JavaScript ã«ã¯ onchange
ã¤ãã³ããã³ãã©ã¼ãããã <select>
ã®å¤ã夿´ããã㨠<input>
è¦ç´ ã® pattern
, placeholder
, aria-label
ããã®å½/å°åã®é»è©±çªå·ã®å½¢å¼ã«åããã¦æ´æ°ããããã«ãªã£ã¦ãã¾ãã
const selectElem = document.querySelector("select");
const inputElems = document.querySelectorAll("input");
selectElem.onchange = () => {
for (let i = 0; i < inputElems.length; i++) {
inputElems[i].value = "";
}
if (selectElem.value === "US") {
inputElems[2].parentNode.style.display = "inline";
inputElems[0].placeholder = "Area code";
inputElems[0].pattern = "[0-9]{3}";
inputElems[1].placeholder = "First part";
inputElems[1].pattern = "[0-9]{3}";
inputElems[1].setAttribute("aria-label", "First part of number");
inputElems[2].placeholder = "Second part";
inputElems[2].pattern = "[0-9]{4}";
inputElems[2].setAttribute("aria-label", "Second part of number");
} else if (selectElem.value === "UK") {
inputElems[2].parentNode.style.display = "none";
inputElems[0].placeholder = "Area code";
inputElems[0].pattern = "[0-9]{3,6}";
inputElems[1].placeholder = "Local number";
inputElems[1].pattern = "[0-9]{4,8}";
inputElems[1].setAttribute("aria-label", "Local number");
} else if (selectElem.value === "Germany") {
inputElems[2].parentNode.style.display = "inline";
inputElems[0].placeholder = "Area code";
inputElems[0].pattern = "[0-9]{3,5}";
inputElems[1].placeholder = "First part";
inputElems[1].pattern = "[0-9]{2,4}";
inputElems[1].setAttribute("aria-label", "First part of number");
inputElems[2].placeholder = "Second part";
inputElems[2].pattern = "[0-9]{4}";
inputElems[2].setAttribute("aria-label", "Second part of number");
}
};
ãã®ä¾ã¯æ¬¡ã®ããã«è¦ãã¾ãã
ããã¯é¢ç½ãã¢ã¤ãã¢ã§ãå½éé»è©±çªå·ã®åãæ±ãã®åé¡ã解決ããå¯è½æ§ã示ãã¦ãã¾ãããã®ä¾ãæ¡å¼µãã¦ãæ½å¨çã«ãã¹ã¦ã®å½ã«å¯¾ãã¦æ£ãããã¿ã¼ã³ãæä¾ããªããã°ãªãã¾ããããããã¯å¤§å¤ãªä½æ¥ã§ãããã¦ã¼ã¶ã¼ãèªåã®çªå·ãæ£ããå ¥åããã¨ãããã¼ã«ãã«ã¼ãã®ä¿è¨¼ãããã¾ããã
ã¯ã©ã¤ã¢ã³ãå´ã§ããã ã大å¤ãªãã¨ãããã¹ããªã®ããã¯ã©ã¤ã¢ã³ãå´ã§ã¯ã¦ã¼ã¶ã¼ã好ããªæ¸å¼ã§ä»»æã®æ°åãå ¥åãããµã¼ãã¼å´ã§ãµãã¿ã¤ãºããã°ããã®ã§ã¯ãªããã¨ãæãã§ãããããããããã®é¸æã¯ããªãããããã¨ã§ãã
div {
margin-bottom: 10px;
position: relative;
}
input[type="number"] {
width: 100px;
}
input + span {
padding-right: 30px;
}
input:invalid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
color: #8b0000;
}
input:valid + span::after {
position: absolute;
content: "â";
padding-left: 5px;
color: #009000;
}
æè¡çæ¦è¦ å¤ é»è©±çªå·ã表ãæååãã¾ãã¯ç©ºæ¬ ã¤ãã³ã change
ããã³ input
対å¿ãã¦ããå
±é屿§ autocomplete
, list
, maxlength
, minlength
, pattern
, placeholder
, readonly
, size
IDL 屿§ list
, selectionStart
, selectionEnd
, selectionDirection
, value
DOM ã¤ã³ã¿ã¼ãã§ã¤ã¹ HTMLInputElement
ã¡ã½ãã select()
, setRangeText()
, setSelectionRange()
æé»ã® ARIA ãã¼ã« list
屿§ãããå ´å: textbox
list
屿§ããªãå ´å: combobox
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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