Join add validation.html 7.55 KB
<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="utf-8">
    <title>회원가입</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
        $(function () {
            $("#datepicker").datepicker();
        });
    </script>
    
    <style>
        body {
            background: #34495e;
            margin: 0;
        }

        .box {
            width: 300px;
            padding: 40px;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background: #191919;
            text-align: center;
        }

        .box h1 {
            color: white;
            text-transform: uppercase;
            font-weight: 500;
        }

        .box input[type="text"],
        .box input[type="password"],
        .box input[type="email"] {
            border: 0;
            background: none;
            margin: 20px auto;
            text-align: center;
            border: 2px solid #3498db;
            padding: 14px 10px;
            width: 200px;
            outline: none;
            color: white;
            border-radius: 24px;
            transition: 0.25s;
            cursor: pointer;
        }

        .box input[type="text"]:focus,
        .box input[type="password"]:focus,
        .box input[type="email"]:focus {
            width: 280px;
            border-color: #2ecc71;

        }

        .box input[type="submit"]:hover,
        .box input[type="button"]:hover,
        .box input[type="reset"]:hover {
            background: #2ecc71;
        }

        .ui-widget-header {
            background: navy;
            color: #fff;
        }

        input[class="btn"] {
            border: none;
            color: white;
            font-family: NanumSquareWeb;
            font-size: large;
            font-weight: bold;
            text-align: center;
            border-radius: 20px;
            width: 32%;
            height: 40px;
            float: left;
        }

        input[id="submit"] {
            background-color: #191919;
            border: 2px solid #3498db;
        }

        input[id="reset"] {
            background-color: #191919;
            border: 2px solid #3498db;
        }

        input[id="back"] {
            background-color: #191919;
            border: 2px solid #3498db;
        }

        button img {
            width: 90%;
        }

        @media(max-width: 577px) {
            input[class='btn'] {
                width: 100%;
            }
        }
    </style>
      <span id="alert-success" style="display: none;">비밀번호가 일치합니다.</span>
      <span id="alert-danger" style="display: none; color: #ffffff; font-weight: bold; ">비밀번호가 일치하지 않습니다.</span>
</head>
<body>
    <form class="box" action="#" method="POST" onsubmit="return checkAll(this)">
        <h1>필수 입력 사항</h1>
        <input id="id" type="text" name="userid" placeholder="ID" required>

        <input id="name" type="text" name="username" placeholder="Name" required>

        <input class="pw" id="password" type="password" name="userpassword" placeholder="Password" required>

        <input class="pw" id="password_check" type="password" name="userpassword_check" placeholder="Password Check" required>

        <input id="email" type="email" name="useremail" placeholder="Email" required>

        <input class="btn" id="submit" type="submit" background-color="" value="회원 가입" />
        <!-- 전송해주는 형태 + value -> 안에 들어갈 값-->
        <input class="btn" id="reset" type="reset" value="재작성" />
        <input class="btn" id="back" type="button" value="뒤로 가기" onclick="history.go(-1)" />
    </form>
    <script language="javascript">
        function checkAll(form) {
            if (!checkUserId(form.userid.value)) {
                return false;
            }
            if (!checkPassword(form.userid.value, form.userpassword.value, form.userpassword_check.value)) {
                return false;
            }
            if (!checkMail(form.useremail.value)) {
                return false;
            }
            return true;
        }
        
        
        function checkUserId(id) { 
            //함수 매개변수로 넘어오는 값은 input 태그에 들어가는 값.
            //Id가 입력되었는지 확인하기
            if (!checkExistData(id, "아이디를"))
                return false;
        
            var idRegExp = /^[a-zA-z0-9]{5,15}$/; //아이디 유효성 검사
            if (!idRegExp.test(id)) {
                alert("아이디는 영문 대소문자와 숫자 5~15자리로 입력해야합니다!");
                form.userid.value = "";
                document.getElementById(userid).focus();
                return false;
            }
            return true; //확인이 완료되었을 때
        }
        
        function checkPassword(id, password1, password2) {
            //비밀번호가 입력되었는지 확인하기
            if (!checkExistData(password1, "비밀번호를"))
                return false;
            //비밀번호 확인이 입력되었는지 확인하기
            if (!checkExistData(password2, "비밀번호 확인을"))
                return false;
        
            var swit = new Boolean(true);

            var password1RegExp = /^[a-zA-z0-9]{4,12}$/; //비밀번호 유효성 검사
            if (!password1RegExp.test(password1)) {
                alert("비밀번호는 영문 대소문자와 숫자 4~12자리로 입력해야합니다!");
                document.getElementById(userpassword).focus();
                swit = false;
            }
            //비밀번호와 비밀번호 확인이 맞지 않다면..
            if (password1 != password2) {
                alert("두 비밀번호가 맞지 않습니다.");
                document.getElementById(userpassword_check).focus();
                swit = false;
            }
        
            //아이디와 비밀번호가 같을 때..
            if (id == password1) {
                alert("아이디와 비밀번호는 같을 수 없습니다!");
                document.getElementById(userid).focus();
                document.getElementById(userpassword).focus();
                swit = false;
            }

            if(swit)
            {
                return true;
            }
            else{
                form.userpassword.value = "";
                form.userpassword_check.value = "";
                return false;
            }
        }    
        
        function checkMail(email) {
            //mail이 입력되었는지 확인하기
            if (!checkExistData(mail, "이메일을"))
                return false;
        
            var emailRegExp = /^[A-Za-z0-9_]+[A-Za-z0-9]*[@]{1}[A-Za-z0-9]+[A-Za-z0-9]*[.]{1}[A-Za-z]{1,3}$/;
            if (!emailRegExp.test(mail)) {
                alert("이메일 형식이 올바르지 않습니다!");
                form.useremail.value = "";
                document.getElementById(useremail).focus();
                return false;
            }
            return true; //확인이 완료되었을 때
        }
        
         // 공백확인 함수
         function checkExistData(value, dataName) {
            if (value == "") {
                alert(dataName + " 입력해주세요!");
                return false;
            }
            return true;
        }
    </script>
</body>

</html>