반응형
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>회원가입페이지</title>
<script type="text/javascript" src="script.js"></script>
</head>
<body background="123.jpg">
<audio src="bgm.mp3" controls autoplay></audio>
<form method="post">
<table width="800" height="600" border="1" align="center">
<tr>
<td align="center" colspan="3" style="background-color: lightskyblue; color: #000000">
<B>회원 기본 정보</B>
</td>
</tr>
<tr>
<td align="center" style="background-color:darkgray">
<B>아이디:</B></td>
<td>
<input type="text" name="id" id="id"> 4~12자의 영문 대소문자와 숫자로만 입력
</td>
</tr>
<tr>
<td align="center" style="background-color:darkgray">
<B>비밀번호:</B></td>
<td>
<input id="password1" type = password name="password1"> 4~12자의 영문 대소문자와 숫자로만 입력
</td>
</tr>
<tr>
<td align="center" style="background-color:darkgray"><B>비밀번호확인:</B></td>
<td>
<input type=password id="password2" name="password2" >
</td>
</tr>
<tr>
<td align="center" style="background-color:darkgray"><B>메일주소:</B></td>
<td>
<input name="mail" id="mail" size="25"> 예) id@domain.com
</td>
</tr>
<tr>
<td align="center" style="background-color:darkgray">
<B>이름:</B></td>
<td>
<input id="name" name="name" type="text" size="25">
</td>
<tr align="center">
<td align="center" colspan="3" style="background-color: lightskyblue; color: black">
<B>개인 신상 정보</B>
</td>
</tr>
<tr>
<td align="center" style="background-color:darkgray"><B>생일:</B></td>
<td>
<input name="info" value="" >년
<select name="info">
<option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option>
</select>월
<select name="info">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>일
</td>
</tr>
<tr>
<td align="center" style="background-color:darkgray">
<B>관심분야:</B></td>
<td>
<input type="checkbox" name="attention" value="컴퓨터">컴퓨터
<input type="checkbox" name="attention" value="인터넷">인터넷
<input type="checkbox" name="attention" value="여행">여행
<input type="checkbox" name="attention" value="영화감상">영화감상
<input type="checkbox" name="attention" value="음악감상">음악감상
</td>
</tr>
<tr align="center">
<td style="background-color:darkgray">
<B>자기소개:</B></td>
<td align="left" style="margin:0 0 0 0;">
<textarea id="intro" cols="70" rows="10" style = "width:80%;height:90%"></textarea>
</td>
</tr>
</table>
<div align="center" style="margin-top:20px;">
<button type="submit" onclick="allCheck()" value="회원 가입">
<a class="at" style="text-decoration: none;color: black" href="mailto:dack1yy@gmail.com">회원가입</a>
</button>
<input align="center" type="reset" value="다시 입력">
</div>
</form>
</body>
</html>
function allCheck() {
if (idCheck() && pwCheck() && checkMail() && nameCheck() && checkInterest() && introCheck()){
alert("회원가입을 축하합니다")
return true;
}
else{
document.querySelector(".at").removeAttribute('href');
return false;
}
}
function idCheck(){
var id = document.getElementById("id");
if(isAlphaNumeric(id.value) === false){
alert("영문 대소문자와 숫자만 입력 가능합니다.");
id.focus();
id.value = "";
return false;
}
else if(!(id.value.length > 3 && id.value.length < 13)){
alert("4~12자로 내용을 입력하세요.");
id.focus();
id.value = "";
return false;
}
else {
return true;
}
}
function pwCheck(){
var pw1 = document.getElementById("password1");
var pw2 = document.getElementById("password2");
alert(document.getElementById("id").value)
if (pw1.value === document.getElementById("id").value)
{
alert("아이디와 비밀번호가 같습니다")
pw1.focus();
pw1.value = "";
pw2.value = "";
return false;
}
else if (pw1.value.length < 4 || pw1.value.length > 12)
{
alert("비밀번호를 4~12자 내로 입력하세요.");
pw1.focus();
pw1.value = "";
pw2.value = "";
return false;
}
else if (pw1.value !== pw2.value){
alert("비밀번호가 불일치 합니다");
pw1.focus();
pw1.value = "";
pw2.value = "";
return false;
}
else if (isAlphaNumeric(pw1.value) === false)
{
alert("영문 숫자로만 입력하세요");
pw1.focus();
pw1.value = "";
pw2.value = "";
return false;
}
else if (pw1.value == null || pw2.value == null){
alert("비밀번호를 입력해주세요");
pw1.focus();
pw1.value = "";
pw2.value = "";
return false;
}
else return true;
}
function checkMail(){
var mail = document.getElementById("mail");
var indexAt = mail.value.indexOf("@");
var indexDot = mail.value.indexOf(".");
if (indexAt === -1){
alert("이메일 형식을 확인해주세요");
mail.focus();
mail.value = "";
return false;
}
if (indexDot === -1){
alert("이메일 형식을 확인해주세요");
mail.focus();
mail.value = "";
return false;
}
else if(isAlphaNumeric(mail.value.substr(0,indexAt)) === false){
alert("특수문자를 빼주세요");
mail.focus();
mail.value = "";
return false;
}
else if(isAlphaNumeric(mail.value.substr(indexAt+1,(indexDot-indexAt-1))) === false){
alert("특수문자를 빼주세요");
mail.focus();
mail.value = "";
return false;
}
else if(isAlphaNumeric(mail.value.substr(indexDot+1)) === false){
alert("특수문자를 빼주세요");
mail.focus();
mail.value = "";
return false;
}
else return true;
}
function nameCheck(){
var name = document.getElementById("name");
if (name.value == null){
alert("이름을 입력해주세요");
name.focus();
name.value = "";
return false;
}
// isKoreNumerics 함수는 한글을 판별해주는 유니코드 조건문임
// 한글을 제외한 값이 들어오면
else if(isKoreNumeric(name.value) === false){
alert("한글을 입력해 주세요.");
name.focus();
name.value = "";
return false;
}
else return true;
}
function checkInterest(){
var interest = document.getElementsByName("attention")
var cnt = 0;
for(var i =0; i<interest.length; i ++){
if(interest[i].checked){cnt++};
}
if (cnt === 0)
{
alert("관심분야를 체크해 주세요.")
return false;
}
else return true;
}
function introCheck(){
var intro = document.getElementById("intro");
alert(intro.value);
if(intro.value === null){
alert("자기소개에 내용을 입력해주세요.");
intro.focus();
return false;
}
else return true;
}
function isKoreNumeric(str){
var code;
for(var i=0;i<str.length;i++){
code = str.charCodeAt(i);
if(!(code > 44031 && code < 55204) &&
!(code > 12592 && code < 12623) &&
!(code > 12622 && code < 12644)) {
return false;
}
}
return true;
}
function isAlphaNumeric(str){
var code;
for(var i=0;i<str.length;i++){
code = str.charCodeAt(i);
if(!(code > 47 && code < 58) &&
!(code > 64 && code < 91) &&
!(code > 96 && code < 123)) {
return false;
}
}
return true;
}
반응형
'Web' 카테고리의 다른 글
[JSP] include 액션 태그를 이용한 페이지 이동 (중복된 공간) (1) | 2022.09.16 |
---|---|
http 주요 에러코드 (0) | 2022.09.15 |
HTTP 와 HTTPS 의 차이 (4) | 2022.09.15 |
[자바스크립트] 회원가입 페이지 만들기 (정규표현식O) (0) | 2022.09.14 |
[자바스크립트] 계산기 만들기 (0) | 2022.09.13 |