【実践】JavaScriptでTODOアプリを作成しよう! 第4回 テキストボックスの内容を操作する

JavaScript学習ガイド

こんにちは、Reiです!

前回のステップで、
「ボタンが押されたら処理を実行する」という土台ができました。

今回はその続きとして、
入力欄に入力された文字を取得して扱えるようにしていきます!


入力欄の文字を取得する

ここでは、入力欄に書かれた文字を
JavaScriptで読み取る処理を実装していきます。

さらに、取得したあとに
入力欄を空にリセットする処理も追加していきます。


この仕組みができると、

・ユーザーが入力した内容を取得する
・取得した内容を別の処理で使う

といった、アプリの基本的な動きが実現できます。


ポイントは、入力欄から取得した値は、変数に保存される という点です。

そのため、入力欄を空にしても、取得したデータは問題なく使えます。
それでは、順番に実装していきましょう!


1. HTMLの入力欄に「目印」をつける

まずは、JavaScriptが
どの入力欄の文字を読み取ればよいのか を判断できるようにします。

そのために、<input> タグに id を付けます。

【編集ファイル:index.html】

<input id="add-text" placeholder="TODOを入力" />

ボタンと同じように、
入力欄にも id を付けておくことで、

JavaScriptから
「この入力欄の文字を取得する」
というように、対象を正確に指定できるようになります。


2. テキストボックスの中身を取得する

次に、ボタンが押されたときに実行される
onClickAdd の中身を書き換えます。

入力欄に書かれた文字を
JavaScriptで読み取れるようにしてみましょう。

【編集ファイル:src/index.js】

const onClickAdd = () => {
  // 1. HTMLから入力欄の要素を取得し、その値を取り出す
  const inputText = document.getElementById("add-text").value;

  alert(inputText);
};
  • .value
    入力欄などのフォーム要素が持っている 「現在の値」 を取得するプロパティです。
    getElementById で取得した入力欄に対して .value を指定すると、
    その入力欄に現在書かれている 文字データ を取り出すことができます

取得した文字は、const inputText という定数に保存しています。

このように一度変数へ保存しておくことで、
取得したデータを あとから別の処理で使える状態 にしておくことができます。


3. テキストボックスの中身を空にする

次に、文字を読み取ったあと
入力欄を空にリセットする処理 を追加します。

【編集ファイル:src/index.js】

const onClickAdd = () => {
  // 1. テキストボックスの値を取得
  const inputText = document.getElementById("add-text").value;

  // 2. テキストボックスの中身を空にする
  document.getElementById("add-text").value = "";

  alert(inputText);
};

ここでは、.value = "" とすることで、
入力欄の値を 空の文字 に置き換えています。


文字を取得した直後に入力欄をクリアしておくことで、

  • ユーザーが次のTODOをすぐ入力できる
  • 以前の文字を消す手間がなくなる

という、使いやすい状態を保つことができます。


今回の処理の流れ

ここまでのコードでは、
ボタンがクリックされると、次のような順番で処理が動きます。

  1. テキストボックスから文字を読み取る
  2. 入力欄の中身を空にする
  3. 保存しておいた文字をアラートで表示する

ポイントは、
画面の入力欄を空にしても、取得した文字は消えない という点です。

最初に入力された文字を inputText という変数に保存しているため、
そのあと入力欄を空にしても、取得した文字はその変数の中に残っています。

そのため、入力欄が空になったあとでも、
保存しておいた文字を alert で表示することができます。


全体像の確認

最終的に、以下のようになっていればOKです。

  • index.html
    入力欄に id="add-text" が付与されている
  • src/index.js
    入力値の取得と、入力欄を空にする処理が onClickAdd の中に書かれている

このように、

入力を受け取る → すぐリセットする

という流れにしておくことで、
ユーザーは常に 空の入力欄から次のTODOを書き始める ことができます。

一見シンプルな処理ですが、
アプリの使いやすさを支える大切なポイントとなります!


【完成ファイル:index.html】

〜省略〜

  <body>
    <div class="input-area">
      <input id="add-text" placeholder="TODOを入力">
      <button id="add-button">追加</button>
    </div>

〜省略〜

【完成ファイル:src/index.js】

/**
 * 追加ボタンが押された時に実行する関数
 */
const onClickAdd = () => {
  // 1. テキストボックスの値を取得
  const inputText = document.getElementById("add-text").value;

  // 2. テキストボックスの中身を空にする
  document.getElementById("add-text").value = "";

  alert(inputText);
};

// 追加ボタンの要素を取得
const addButton = document.getElementById("add-button");

// ボタンがクリックされたら onClickAdd を実行
addButton.addEventListener("click", onClickAdd);

まとめ

今回は、JavaScriptを使って
「入力された文字を読み取り、入力欄をリセットする」 処理を実装しました。

\\ 今回のまとめ //

id を付けて、JavaScriptから入力欄を特定する
.value を使って入力された文字を取得する
・ 取得後に 空文字(””)を代入して入力欄をリセットする


これで、ユーザーが入力した内容をJavaScriptが読み取る という仕組みができました。

次はいよいよ、
読み取った文字をTODOリスト(未完了エリア)に追加する
という、アプリのメイン機能を実装していきます!

コメント

タイトルとURLをコピーしました