회원가입 입력값에 대한 검증
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<style type="text/css">
fieldset {
width: 800px;
margin: 10px auto;
}
legend {
font-size: 1.2em;
}
#joinForm ul li {
list-style-type: none;
margin: 15px 0;
}
#joinForm label {
width: 100px;
text-align: right;
float: left;
margin-right: 10px;
}
#btnFs {
text-align: center;
}
.error {
color: red;
margin-left: 10px;
}
</style>
</head>
<body>
<h1>Form Event</h1>
<hr>
<form id="joinForm">
<fieldset>
<legend>회원가입정보</legend>
<ul>
<li>
<label for="id">아이디</label>
<input type="text" name="id" id="id">
<span id="idMsg" class="error"></span>
</li>
<li>
<label for="passwd">비밀번호</label>
<input type="password" name="passwd" id="passwd">
<span id="passwdMsg" class="error"></span>
</li>
<li>
<label for="name">이름</label>
<input type="text" name="name" id="name">
<span id="nameMsg" class="error"></span>
</li>
<li>
<label for="email">이메일</label>
<input type="text" name="email" id="email">
<span id="emailMsg" class="error"></span>
</li>
</ul>
</fieldset>
<fieldset id="btnFs">
<button type="button" id="submitBtn">회원가입</button>
<button type="button" id="resetBtn">다시입력</button>
</fieldset>
</form>
<script type="text/javascript">
$("#id").focus();
$("#submitBtn").click(function() {
$(".error").text("");
var result=true;
if($("#id").val()=="") {
$("#idMsg").text("아이디를 입력해 주세요.");
result=false;
}
if($("#passwd").val()=="") {
$("#passwdMsg").text("비밀번호를 입력해 주세요.");
result=false;
}
if($("#name").val()=="") {
$("#nameMsg").text("이름을 입력해 주세요.");
result=false;
}
if($("#email").val()=="") {
$("#emailMsg").text("이메일을 입력해 주세요.");
result=false;
}
if(!result) return;
$("#joinForm").attr("action", "20_form_event.html");
$("#joinForm").attr("method", "post");
$("#joinForm").submit();
});
$("#id").blur(function() {
if($("#id").val()=="") {
$("#idMsg").text("아이디를 입력해 주세요.");
return;
}
$("#idMsg").text("");
});
$("#resetBtn").click(function() {
$("#joinForm")[0].reset();
$(".error").text("");
$("#id").focus();
});
</script>
</body>
</html>
submit로 처리
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<style type="text/css">
fieldset {
width: 800px;
margin: 10px auto;
}
legend {
font-size: 1.2em;
}
#joinForm ul li {
list-style-type: none;
margin: 15px 0;
}
#joinForm label {
width: 100px;
text-align: right;
float: left;
margin-right: 10px;
}
#btnFs {
text-align: center;
}
.error {
color: red;
margin-left: 10px;
}
</style>
</head>
<body>
<h1>Form Event</h1>
<hr>
<form action="21_submit_event.html" method="post" id="joinForm">
<fieldset>
<legend>회원가입정보</legend>
<ul>
<li>
<label for="id">아이디</label>
<input type="text" name="id" id="id">
<span id="idMsg" class="error"></span>
</li>
<li>
<label for="passwd">비밀번호</label>
<input type="password" name="passwd" id="passwd">
<span id="passwdMsg" class="error"></span>
</li>
<li>
<label for="name">이름</label>
<input type="text" name="name" id="name">
<span id="nameMsg" class="error"></span>
</li>
<li>
<label for="email">이메일</label>
<input type="text" name="email" id="email">
<span id="emailMsg" class="error"></span>
</li>
</ul>
</fieldset>
<fieldset id="btnFs">
<button type="submit" id="submitBtn">회원가입</button>
<button type="reset" id="resetBtn">다시입력</button>
</fieldset>
</form>
<script type="text/javascript">
$("#id").focus();
$("#joinForm").submit(function() {
$(".error").text("");
var result=true;
if($("#id").val()=="") {
$("#idMsg").text("아이디를 입력해 주세요.");
result=false;
}
if($("#passwd").val()=="") {
$("#passwdMsg").text("비밀번호를 입력해 주세요.");
result=false;
}
if($("#name").val()=="") {
$("#nameMsg").text("이름을 입력해 주세요.");
result=false;
}
if($("#email").val()=="") {
$("#emailMsg").text("이메일을 입력해 주세요.");
result=false;
}
return result;
});
$("#resetBtn").click(function() {
$(".error").text("");
$("#id").focus();
});
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<style type="text/css">
fieldset {
width: 800px;
margin: 10px auto;
}
legend {
font-size: 1.2em;
}
#joinForm ul li {
list-style-type: none;
margin: 15px 0;
}
#joinForm label {
width: 100px;
text-align: right;
float: left;
margin-right: 10px;
}
#btnFs {
text-align: center;
}
.error {
color: red;
margin-left: 10px;
}
</style>
</head>
<body>
<h1>Form Event</h1>
<hr>
<form action="22_input_required.html" method="post" id="joinForm">
<fieldset>
<legend>회원가입정보</legend>
<ul>
<li>
<label for="id">아이디</label>
<!-- 입력태그에 required 속성을 설정하면 입력값이 없는 경우 form 태그 미실행 -->
<!-- <input type="text" name="id" id="id" required="required"> -->
<input type="text" name="id" id="id" class="required">
<span id="idMsg" class="error"></span>
</li>
<li>
<label for="passwd">비밀번호</label>
<input type="password" name="passwd" id="passwd" class="required">
<span id="passwdMsg" class="error"></span>
</li>
<li>
<label for="name">이름</label>
<input type="text" name="name" id="name" class="required">
<span id="nameMsg" class="error"></span>
</li>
<li>
<label for="email">이메일</label>
<input type="text" name="email" id="email" class="required">
<span id="emailMsg" class="error"></span>
</li>
</ul>
</fieldset>
<fieldset id="btnFs">
<button type="submit" id="submitBtn">회원가입</button>
<button type="reset" id="resetBtn">다시입력</button>
</fieldset>
</form>
<script type="text/javascript">
$("#id").focus();
$("#joinForm").submit(function() {
$(".error").text("");
var result=true;
var message={"id":"아이디를 입력해 주세요.","passwd":"비밀번호를 입력해 주세요."
,"name":"이름을 입력해 주세요.","email":"이메일을 입력해 주세요."};
$(this).find(".required").each(function() {
if($(this).val()=="") {
var value=$(this).attr("id");
$("#"+value+"Msg").text(message[value]);
result=false;
}
});
return result;
});
</script>
</body>
</html>