ใ“ใฎใƒšใƒผใ‚ธใฏใ‚ณใƒŸใƒฅใƒ‹ใƒ†ใ‚ฃใƒผใฎๅฐฝๅŠ›ใง่‹ฑ่ชžใ‹ใ‚‰็ฟป่จณใ•ใ‚Œใพใ—ใŸใ€‚MDN Web Docs ใ‚ณใƒŸใƒฅใƒ‹ใƒ†ใ‚ฃใƒผใซใคใ„ใฆใ‚‚ใฃใจ็Ÿฅใ‚Šใ€ไปฒ้–“ใซใชใ‚‹ใซใฏใ“ใกใ‚‰ใ‹ใ‚‰ใ€‚

View in English Always switch to English

HTMLInputElement: setSelectionRange() ใƒกใ‚ฝใƒƒใƒ‰

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ๆœˆโฉ.

HTMLInputElement.setSelectionRange() ใƒกใ‚ฝใƒƒใƒ‰ใฏใ€ <input> ใพใŸใฏ <textarea> ่ฆ็ด ใฎไธญใง็พๅœจใฎใƒ†ใ‚ญใ‚นใƒˆใฎ้ธๆŠž็ฏ„ๅ›ฒใฎ้–‹ๅง‹ไฝ็ฝฎใจ็ต‚ไบ†ไฝ็ฝฎใ‚’่จญๅฎšใ—ใพใ™ใ€‚

ใ‚ชใƒ—ใ‚ทใƒงใƒณใจใ—ใฆใ€ๆ–ฐใ—ใ„ใƒใƒผใ‚ธใƒงใƒณใฎใƒ–ใƒฉใ‚ฆใ‚ถใƒผใงใฏใ€้ธๆŠžใŒ่กŒใ‚ใ‚ŒใŸใจใฟใชใ™ๆ–นๅ‘ใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ไพ‹ใˆใฐใ€ใƒฆใƒผใ‚ถใƒผใŒ้ธๆŠž็ฏ„ๅ›ฒใ‚’่จญๅฎšใ™ใ‚‹ใฎใซใ€้ธๆŠžใ•ใ‚ŒใŸใƒ†ใ‚ญใ‚นใƒˆใฎๆœซๅฐพใ‹ใ‚‰ๅ…ˆ้ ญใซๅ‘ใ‘ใฆใ‚ฏใƒชใƒƒใ‚ฏใจใƒ‰ใƒฉใƒƒใ‚ฐใŒ่กŒใ‚ใ‚ŒใŸใ“ใจใ‚’็คบใ™ใ“ใจใŒใงใใพใ™ใ€‚

ใ“ใฎ้–ขๆ•ฐใฏ 1 ๅ›žใฎๅ‘ผใณๅ‡บใ—ใงใ€ HTMLInputElement.selectionStart, selectionEnd, selectionDirection ใฎๅ„ใƒ—ใƒญใƒ‘ใƒ†ใ‚ฃใ‚’ๆ›ดๆ–ฐใ—ใพใ™ใ€‚

WHATWG ใƒ•ใ‚ฉใƒผใƒ ไป•ๆง˜ๆ›ธใซใ‚ˆใ‚‹ใจใ€ selectionStart, selectionEnd ใƒ—ใƒญใƒ‘ใƒ†ใ‚ฃใจ setSelectionRange ใƒกใ‚ฝใƒƒใƒ‰ใฏใ€ text, search, URL, tel, password ๅž‹ใฎๅ…ฅๅŠ›ๆฌ„ใซใฎใฟ้ฉ็”จใ•ใ‚Œใ‚‹ใ“ใจใซๆณจๆ„ใ—ใฆใใ ใ•ใ„ใ€‚ Chrome ใฎใƒใƒผใ‚ธใƒงใƒณ 33 ไปฅ้™ใงใฏใ€ใใ‚Œไปฅๅค–ใฎๅ…ฅๅŠ›ๅž‹ใงใ“ใ‚Œใ‚‰ใฎใƒ—ใƒญใƒ‘ใƒ†ใ‚ฃใจใƒกใ‚ฝใƒƒใƒ‰ใซใ‚ขใ‚ฏใ‚ปใ‚นใ™ใ‚‹ใจไพ‹ๅค–ใŒ็™บ็”Ÿใ—ใพใ™ใ€‚ไพ‹ใˆใฐใ€ number ๅž‹ใฎๅ…ฅๅŠ›ๆฌ„ใงใฏใ€ "Failed to read the 'selectionStart' property from 'HTMLInputElement': The input element's type ('number') does not support selection" ๏ผˆ'HTMLInputElement' ใฎ 'selectionStart' ใƒ—ใƒญใƒ‘ใƒ†ใ‚ฃใ‚’่ชญใฟๅ–ใ‚Šใซๅคฑๆ•—ใ—ใพใ—ใŸใ€‚ใ“ใฎ input ่ฆ็ด ใฎๅ…ฅๅŠ›ๅž‹ ('number') ใฏ้ธๆŠžใซๅฏพๅฟœใ—ใฆใ„ใพใ›ใ‚“๏ผ‰ใจใชใ‚Šใพใ™ใ€‚

input ่ฆ็ด ใฎใ™ในใฆใฎใƒ†ใ‚ญใ‚นใƒˆใ‚’้ธๆŠžใ—ใŸใ„ๅ ดๅˆใฏใ€ไปฃใ‚ใ‚Šใซ HTMLInputElement.select() ใƒกใ‚ฝใƒƒใƒ‰ใ‚’ไฝฟ็”จใ—ใฆใใ ใ•ใ„ใ€‚

ๆง‹ๆ–‡

js
setSelectionRange(selectionStart, selectionEnd)
setSelectionRange(selectionStart, selectionEnd, selectionDirection)

ๅผ•ๆ•ฐ

selectionEnd ใŒ selectionStart ใ‚ˆใ‚Šๅฐใ•ใ„ๅ ดๅˆใ€ไธกๆ–นใฎๅ€คใฏ selectionEnd ใจใ—ใฆๆ‰ฑใ‚ใ‚Œใพใ™ใ€‚

selectionStart

้ธๆŠžใ™ใ‚‹ๆœ€ๅˆใฎๆ–‡ๅญ—ใฎ 0 ใ‹ใ‚‰ๅง‹ใพใ‚‹ไฝ็ฝฎใงใ™ใ€‚ไฝ็ฝฎใŒ่ฆ็ด ใฎๅ€คใฎ้•ทใ•ใ‚ˆใ‚Šใ‚‚ๅคงใใ„ๅ ดๅˆใฏใ€่ฆ็ด ใฎๅ€คใฎๆœซๅฐพใฎไฝ็ฝฎใจ่ฆ‹ใชใ•ใ‚Œใพใ™ใ€‚

selectionEnd

้ธๆŠžใ™ใ‚‹ๆœ€ๅพŒใฎๆ–‡ๅญ—ใฎๆฌกใฎ 0 ใ‹ใ‚‰ๅง‹ใพใ‚‹ไฝ็ฝฎใงใ™ใ€‚ไฝ็ฝฎใŒ่ฆ็ด ใฎ้•ทใ•ใ‚ˆใ‚Šใ‚‚ๅคงใใ„ๅ ดๅˆใฏใ€่ฆ็ด ใฎๅ€คใฎๆœซๅฐพใฎไฝ็ฝฎใจ่ฆ‹ใชใ•ใ‚Œใพใ™ใ€‚

selectionDirection ็œ็•ฅๅฏ

้ธๆŠžใŒ่กŒใ‚ใ‚ŒใŸใจ่ฆ‹ใชใ•ใ‚Œใ‚‹ๆ–นๅ‘ใ‚’็คบใ™ๆ–‡ๅญ—ๅˆ—ใงใ™ใ€‚ๅ–ใ‚Šใ†ใ‚‹ๅ€คใฏๆฌกใฎ้€šใ‚Šใงใ™ใ€‚

  • "forward"
  • "backward"
  • "none" ้ธๆŠžๆ–นๅ‘ใŒไธๆ˜ŽใพใŸใฏ็„ก้–ขไฟ‚ใชๅ ดๅˆใงใ™ใ€‚ๆ—ขๅฎšๅ€คใงใ™ใ€‚

่ฟ”ๅ€ค

ใชใ— (undefined)ใ€‚

ไพ‹

ใ“ใฎไพ‹ใฎไธญใฎใƒœใ‚ฟใƒณใ‚’ใ‚ฏใƒชใƒƒใ‚ฏใ™ใ‚‹ใจใ€ใƒ†ใ‚ญใ‚นใƒˆใƒœใƒƒใ‚ฏใ‚นใฎ 3ใ€4ใ€5 ็•ช็›ฎใฎๆ–‡ๅญ—๏ผˆ"Mozilla" ใฎ "zil"๏ผ‰ใŒ้ธๆŠž็Šถๆ…‹ใซใชใ‚Šใพใ™ใ€‚

HTML

html
<input type="text" id="text-box" size="20" value="Mozilla" />
<button onclick="selectText()">ใƒ†ใ‚ญใ‚นใƒˆใ‚’้ธๆŠž</button>

JavaScript

js
function selectText() {
  const input = document.getElementById("text-box");
  input.focus();
  input.setSelectionRange(2, 5);
}

็ตๆžœ

ไป•ๆง˜ๆ›ธ

Specification
HTML
# dom-textarea/input-setselectionrange-dev

ใƒ–ใƒฉใ‚ฆใ‚ถใƒผใฎไบ’ๆ›ๆ€ง

้–ข้€ฃๆƒ…ๅ ฑ