Untitled

 avatar
unknown
plain_text
5 months ago
5.2 kB
3
Indexable
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Registration Form</title>
    <style>
        /* CSS */
        body {
            font-family: Arial, sans-serif;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100vh;
            margin: 0;
            background-color: #f0f2f5;
        }

        form {
            background-color: #fff;
            padding: 20px 40px;
            border-radius: 8px;
            box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 400px;
        }

        label {
            display: block;
            margin-bottom: 8px;
            font-weight: bold;
            color: #333;
        }

        input[type="text"],
        input[type="password"],
        input[type="date"],
        input[type="file"] {
            width: 100%;
            padding: 10px;
            margin-bottom: 15px;
            border: 1px solid #ddd;
            border-radius: 4px;
            box-sizing: border-box;
            font-size: 14px;
        }

        button[type="submit"] {
            width: 100%;
            padding: 10px;
            background-color: #4CAF50;
            color: white;
            font-size: 16px;
            font-weight: bold;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: background-color 0.3s ease;
        }

        button[type="submit"]:hover {
            background-color: #45a049;
        }

        input:invalid {
            border-color: #e74c3c;
        }

        input[type="text"]:focus,
        input[type="password"]:focus,
        input[type="date"]:focus,
        input[type="file"]:focus {
            border-color: #4CAF50;
            box-shadow: 0px 0px 5px rgba(76, 175, 80, 0.5);
            outline: none;
        }
    </style>
</head>
<body>
    <form id="registrationForm" onsubmit="return validateForm()">
        <label for="fullName">Họ và tên:</label>
        <input type="text" id="fullName" name="fullName" required>

        <label for="password">Mật khẩu:</label>
        <input type="password" id="password" name="password" required>

        <label for="confirmPassword">Xác nhận mật khẩu:</label>
        <input type="password" id="confirmPassword" name="confirmPassword" required>

        <label for="birthDate">Ngày tháng năm sinh:</label>
        <input type="date" id="birthDate" name="birthDate" required>

        <label for="phoneNumber">Số điện thoại:</label>
        <input type="text" id="phoneNumber" name="phoneNumber" required>

        <label for="imagePath">Đường dẫn ảnh:</label>
        <input type="file" id="imagePath" name="imagePath" accept="image/*">

        <button type="submit">Đăng ký</button>
    </form>

    <script>
        // JavaScript
        function validateForm() {
            const fullName = document.getElementById("fullName").value;
            const password = document.getElementById("password").value;
            const confirmPassword = document.getElementById("confirmPassword").value;
            const phoneNumber = document.getElementById("phoneNumber").value;
            const imagePath = document.getElementById("imagePath").value;

            // 1. Họ và tên không được dùng chữ số
            if (/\d/.test(fullName)) {
                alert("Họ và tên không được chứa chữ số.");
                return false;
            }

            // 2. Mật khẩu phải có ít nhất 1 chữ hoa, 1 chữ thường, 1 ký tự đặc biệt và ít nhất 8 ký tự
            const passwordPattern = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\W).{8,}$/;
            if (!passwordPattern.test(password)) {
                alert("Mật khẩu phải có ít nhất 1 chữ hoa, 1 chữ thường, 1 ký tự đặc biệt và ít nhất 8 ký tự.");
                return false;
            }

            // 3. Khẳng định mật khẩu và mật khẩu phải trùng nhau
            if (password !== confirmPassword) {
                alert("Mật khẩu và xác nhận mật khẩu phải trùng nhau.");
                return false;
            }

            // 5. Số điện thoại không được dùng ký tự và ký tự đặc biệt ngoại trừ dấu ()
            const phonePattern = /^[\d()]+$/;
            if (!phonePattern.test(phoneNumber)) {
                alert("Số điện thoại không được chứa ký tự hoặc ký tự đặc biệt ngoại trừ dấu ().");
                return false;
            }

            // 6. Hiển thị tên file ảnh nếu có
            if (imagePath) {
                const fileName = imagePath.split("\\").pop();
                alert("Tên file ảnh: " + fileName);
            }

            return true; // Dữ liệu hợp lệ
        }
    </script>
</body>
</html>
Editor is loading...
Leave a Comment