jQ_フォームとバリデーション

08フォームとバリデーション

ウェブアプリケーションでは、フォームとバリデーションが非常に重要です。フォームはユーザーから情報を収集するための手段で、バリデーションはその収集した情報が正しく、期待されるルールや要件に合致しているかを確認するプロセスです。

フォーム・バリデーションの実装

jQueryを使ったフォームの全体的な例を作成してみましょう。この例では、単純なユーザー登録フォームを作成し、jQueryを用いてフォームの入力値を取得し、バリデーションを行い、最終的にはフォームをプログラム的に送信する方法を示します。

HTMLフォーム

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>ユーザー登録フォーム</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <form id="registrationForm">
        <label for="username">ユーザー名:</label>
        <input type="text" id="username" name="username" required>
        <br>
        <label for="email">メールアドレス:</label>
        <input type="email" id="email" name="email" required>
        <br>
        <label for="password">パスワード:</label>
        <input type="password" id="password" name="password" required>
        <br>
        <button type="submit">登録</button>
    </form>

    <script src="form-script.js"></script>
</body>
</html>

JavaScript (jQuery) でのフォーム操作

フォームスクリプト(form-script.js)では、以下の機能を実装します

  1. フォームのバリデーション
  2. フォームデータの取得
  3. フォームの送信防止とカスタム送信処理
$(document).ready(function() {
    $('#registrationForm').submit(function(event) {
        event.preventDefault(); // フォームの自動送信を防ぐ

        var username = $('#username').val().trim();
        var email = $('#email').val().trim();
        var password = $('#password').val().trim();

        // 簡単なバリデーション
        if (username === "" || email === "" || password === "") {
            alert("すべてのフィールドを入力してください。");
            return;
        }
        if (!email.includes('@')) {
            alert("有効なメールアドレスを入力してください。");
            return;
        }

        // フォームデータの使用、例えばAjaxを使ってサーバーに送信
        $.ajax({
            url: 'register.php', // 送信先URL
            type: 'POST',
            data: {
                username: username,
                email: email,
                password: password
            },
            success: function(response) {
                console.log('登録成功: ', response);
                alert('登録が完了しました!');
            },
            error: function() {
                alert('登録に失敗しました。');
            }
        });
    });
});

・バリデーション例1

・バリデーション例2

この例では、ユーザーがフォームに入力したデータを取得し、いくつかの基本的なバリデーションチェックを行った後、すべてのチェックが通過したら、Ajaxを使用してこれらのデータをサーバーに送信します。サーバー側でさらに処理が行われた後、成功または失敗のレスポンスに基づいてユーザーに通知します。

このように、jQueryを使用するとフォームの操作が簡単にでき、ユーザーエクスペリエンスの向上に役立ちます。この例を基にして、さらに複雑なバリデーションや機能を追加することも可能です。


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です