javascript 指定した範囲の文字列を選択する
- 2020.08.27
- javascript
- javascript

javascriptでsetSelectionRangeメソッドを使用して指定した範囲の文字列を選択するサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 84.0.4147.105
setSelectionRangeメソッド使い方
setSelectionRangeメソッドを使うと指定した範囲を選択状態にすることが可能です。
1 2 3 |
setSelectionRange(開始,終了) 開始は「0」からとなります。 |
サンプルコード
以下は、テキストフォームに入力した値を、指定した範囲で選択するサンプルコードとなります。
※cssには「uikit」を使用してます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>mebeeサンプル</title> <!-- UIkit CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.5.5/dist/css/uikit.min.css" /> <!-- UIkit JS --> <script src="https://cdn.jsdelivr.net/npm/uikit@3.5.5/dist/js/uikit.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/uikit@3.5.5/dist/js/uikit-icons.min.js"></script> </head> <style> .main { margin: 0 auto; margin-top: 80px; display: flex; flex-direction: column; align-items: center; font-size: 20px; } </style> <script> function cal() { //テキストボックスの値を取得 var val = document.getElementsByName("text-box")[0]; //取得した値の3~5文字目を選択する val.focus(); val.setSelectionRange(2, 5); } </script> <body> <div class="main"> <div class="uk-light uk-background-secondary uk-padding"> <form> <fieldset class="uk-fieldset"> <legend class="uk-legend">値を入力</legend> <div class="uk-margin"> <input id="text-box" name="text-box" class="uk-input" placeholder="Input"> </div> </fieldset> </form> <p uk-margin> <button class="uk-button uk-button-danger" onclick="cal()">選択</button> </p> </div> </div> </body> </html> |
指定した範囲が選択状態になっていることが確認できます。

また、以下の箇所を
1 2 |
val.focus(); val.setSelectionRange(2, 5); |
としても同様の結果となります。
1 2 3 |
val.selectionStart = 2; val.selectionEnd = 5; val.focus(); |
-
前の記事
windows10 mavenをインストールする 2020.08.27
-
次の記事
javascript 画像をドラッグ&ドロップする 2020.08.27
コメントを書く