JavaScript でフォーム操作をしてみよう!5つのステップで完全理解する入門ガイド
こんにちは、とまだです。
JavaScriptでフォームを操作しようとして、手が止まってしまったことはありませんか?
「HTMLでフォームは作れるけど、JavaScriptでどう動かすの?」 「入力された値をどうやって取得するの?」
実は私も最初は同じ悩みを抱えていました。
フォームの要素を取得しようとしてもうまくいかない。 送信ボタンを押すと画面が真っ白になってしまう。
でも大丈夫です。
今回は、JavaScriptのフォーム操作を「郵便配達」に例えながら解説します。 5つのステップで、誰でも理解できるようになりますよ。
フォーム操作は郵便配達と同じ
JavaScriptのフォーム操作って、実は郵便配達と同じなんです。
想像してみてください。
手紙を書いて(ユーザーが入力) ポストに投函して(送信ボタンをクリック) 郵便局員が配達する(JavaScriptが処理)
この流れさえ理解すれば、フォーム操作は怖くありません。
なぜJavaScriptが必要なの?
「HTMLだけでもフォームは作れるのに?」
そう思いますよね。
でも、HTMLだけのフォームには問題があるんです。
メールアドレスが間違っていても送信できてしまう。 必須項目が空でも送信できてしまう。 送信後、画面が真っ白になって不安になる。
JavaScriptを使えば、これらの問題が解決できます。
入力ミスをその場で教えてくれる。 必須項目の入力漏れを防げる。 送信完了メッセージが表示されて安心。
つまり、ユーザーが迷わず使えるフォームが作れるんです。
まずはHTMLでフォームを作ろう
JavaScriptでフォームを操作する前に、HTMLでフォームを作る必要があります。
基本的なフォームのHTMLを見てみましょう。
<form id="myForm">
<input type="text" id="userName" placeholder="お名前">
<input type="email" id="userEmail" placeholder="メールアドレス">
<button type="submit">送信</button>
</form>
ここで大切なのは、各要素にid属性をつけることです。
このidが、JavaScriptから要素を見つけるための「住所」になります。 郵便物に住所を書くのと同じですね。
JavaScriptでフォームを操作する5つのステップ
それでは、いよいよJavaScriptでフォームを操作していきましょう。
ステップ1:フォーム要素を取得する
まず最初に、JavaScriptからフォーム要素を「つかむ」必要があります。
const form = document.getElementById('myForm');
const nameInput = document.getElementById('userName');
const emailInput = document.getElementById('userEmail');
document.getElementById()は「このidの要素を持ってきて」という命令です。
本棚から特定の本を取り出すようなイメージですね。
ステップ2:フォーム送信時の処理を設定する
次に、フォームが送信されたときの処理を設定します。
form.addEventListener('submit', function(event) {
event.preventDefault(); // ページのリロードを防ぐ
// ここに処理を書く
});
addEventListenerは「〇〇が起きたら、この処理をして」という命令です。
そしてevent.preventDefault()は、とても重要な役割を持っています。
これがないと、処理の途中で画面が更新されてしまうんです。
ステップ3:入力値を取得する
フォームに入力された値を取得するのは簡単です。
const name = nameInput.value;
const email = emailInput.value;
.valueをつけるだけで、入力された文字が取得できます。
宝箱を開けたら中身が見える、そんな感じです。
ステップ4:入力値をチェックする
取得した値が正しいかチェックしましょう。 これをバリデーションと呼びます。
if (name === '') {
alert('お名前を入力してください');
return;
}
if (!email.includes('@')) {
alert('正しいメールアドレスを入力してください');
return;
}
空っぽかどうか、メールアドレスに@が含まれているか。 基本的なチェックですが、とても大切です。
門番が通行証をチェックするようなものですね。
ステップ5:処理結果を表示する
最後に、処理が完了したことをユーザーに伝えます。
alert('送信が完了しました!');
// または、画面に表示する
document.getElementById('message').textContent = '送信完了!';
これで、ユーザーは安心できます。
よくあるつまずきポイント
フォーム操作でよくつまずくポイントを3つ紹介します。
画面がリロードされてしまう
フォームを送信すると画面が真っ白になる。 これは本当によくある問題です。
解決法は簡単です。
event.preventDefault()を忘れずに書きましょう。
入力値が取得できない
「なぜか値が取れない...」
idの指定ミスが原因のことが多いです。
HTMLのid属性とJavaScriptのgetElementByIdの中身が一致しているか確認しましょう。 大文字小文字の違いにも要注意です。
ボタンをクリックしても何も起きない
イベントリスナーの設定ミスかもしれません。
addEventListenerの第1引数が'submit'になっているか確認しましょう。
'click'と書いてしまうことがよくあります。
もう一歩進んだ使い方
ここまでの知識を使って、実践的な機能を作ってみましょう。
入力中にリアルタイムでチェックする機能です。
emailInput.addEventListener('input', function() {
const email = this.value;
if (email.includes('@')) {
this.style.borderColor = 'green';
} else {
this.style.borderColor = 'red';
}
});
メールアドレスを入力している最中に、枠線の色が変わります。
@マークが含まれていれば緑色。 含まれていなければ赤色。
ユーザーは送信前に入力が正しいかわかるので便利ですよね。
フォーム操作の基本をマスターしよう
JavaScriptでのフォーム操作、意外とシンプルでしたね。
改めて5つのステップを振り返ってみましょう。
- フォーム要素を取得する
- 送信時の処理を設定する
- 入力値を取得する
- 値をチェックする
- 結果を表示する
この流れさえ押さえれば、基本的なフォーム操作はできるようになります。
もちろん、これは基礎の基礎です。
実際のWebサイトでは、もっと複雑なバリデーションが必要になります。 非同期通信(Ajax)を使った送信処理も必要でしょう。
でも、今日学んだことが土台になります。
フォーム操作は、Webアプリケーション開発の第一歩です。 ここから少しずつステップアップしていけばいいんです。
実践的なスキルを身につけたい方は、Learning NextのJavaScriptカリキュラムがおすすめです。
フォーム操作はもちろん、DOM操作から非同期処理まで体系的に学べます。 実際にTodoアプリを作りながら学ぶので、理解が深まりますよ。
JavaScriptのフォーム操作、もう怖くないですよね? 今回学んだことを活かして、ぜひ自分でもフォームを作ってみてください。
著者について

とまだ
フルスタックエンジニア
Learning Next の創設者。Ruby on Rails と React を中心に、プログラミング教育に情熱を注いでいます。初心者が楽しく学べる環境作りを目指しています。
著者の詳細を見る →