JAVA
[ajax] 비동기 form 사용하기
docc
2021. 8. 16. 22:24
ajax와 form
ajax 는 비동기가 기본값이지만
form 은 기본값이 동기(submit)이기 때문에
form 의 onsubmit 에 ajax 함수를 적용하고 싶을 때
1. 마지막에 return false 를 선언해준다.
그럼 submit 동기처리는 비활성화 되며 ajax 비동기처리만 가능하게 할 수 있다.
만약 ajax의 결과에 따라 동기식으로 처리해야 한다면
2. location.href 로 요청명을 기입해주면 된다.
아래 예시
<script type="text/javascript">
function check(){
if(document.loginForm.id.value==''){
alert('ID를 입력하세요')
document.loginForm.id.focus();
return false;
}
if(document.loginForm.pw.value==''){
alert('비밀번호를 입력하세요')
document.loginForm.pw.focus();
return false;
}
var form_data = "id="+$('#id').val()+"&pw="+$('#pw').val()
//Ajax
$.ajax({
type:"POST",
url:"loginCheck",
data: form_data,//서버로 넘길 인수값
dataType: "JSON",
success:function(data){
if(data.check==1){
alert('로그인 되었습니다.');
location.href="boardList"//로그인 성공시 동기처리를 위해 location.href
}else if(data.check==-1){
//사용중인 ID
alert('가입하지 않은 아이디이거나, 잘못된 비밀번호입니다.');
}
},//success-end
error:function(){
alert('연결이 원활하지 않습니다.');
}
});
return false;//기본적으로 false를 선언해 동기처리 막기
}
</script>
</head>
<body>
<h2>로그인</h2>
<form name="loginForm" method="post" onsubmit="return check()">
<table border="1">
<tr>
<td>ID</td>
<td><input type="text" name="id" id="id" size="20"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="pw" id="pw" size="20"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="로그인">
<input type="button" value="회원가입" onclick="location.href='joinForm'">
</td>
</tr>
</table>
</form>
</body>