ajax, jquery로 아이디 중복확인 구현

호두·2022년 12월 29일
0

JAVA

목록 보기
1/3

jsp

<script>
// 중복확인 함수(Id중복확인 버튼에 onclick 연결)
	function checkId(){
		let status = $('#member_id').attr('status'); //아이디 중복체크 상태
		let memberId = $('#member_id').val(); //입력한 아이디값
		$('.checkIdSpan').remove(); //기존에 중복체크한 이력 지워주기
		
		//아이디를 입력하지 않았다면
		if(memberId == ""){
			$('#member_id').after("<span class='checkIdSpan' style='color:lightgray'>아이디를 입력해주세요.</span>");
			$('#member_id').focus();
			return
		}
		
		$.ajax({
			url: 'checkId.do',
			type: 'POST',
			async: true,
			data: {
				member_id: memberId
			},
			success: function(data){
				//기존 아이디가 존재한다면
				if(data.cnt > 0){
					$('#member_id').attr('status', 'no');
					$('#member_id').after("<span class='checkIdSpan' style='color:red'>이미 존재하는 아이디입니다.</span>")
					$('#member_id').focus();
					
				//기존 아이디가 존재하지 않으면
				}else{
					$('#member_id').attr('status', 'yes');
					$('#member_id').after("<span class='checkIdSpan' style='color:blue'>사용 가능한 아이디입니다.</span>")
				}
			},
			error: function(e){
				alert("error");
			}
		});
	}

// 회원가입 폼 제출 제한하는 함수
function submitForm(){
		let status = $('#member_id').attr('status'); //아이디 중복체크 상태
		
		if(status == ""){
			alert("아이디 중복체크를 해주세요.");
			$('#member_id').focus();
		}else if(status == "no"){
			alert("다른 아이디를 입력해주세요.")
			$('#member_id').focus();
		}else{
			$('#f').submit();
		}
	}


	</script>

컨트롤러

//MemberController.java
//회원가입 - 아이디 중복체크
	@RequestMapping("checkId.do")
	@ResponseBody
	public Map<Object, Object> checkId(@RequestParam String member_id) {
		MemberDTO dto = memberMapper.getMemberId(member_id);
        //getMemberId는 id로 멤버의 dto를 꺼내오는 메소드
        
		Map<Object, Object> map = new HashMap<>();

		// 아이디가 존재하지 않으면
		if(dto == null) {
			map.put("cnt", 0);
		// 아이디가 존재하면
		}else {
			map.put("cnt", 1);
		}
		
		return map;
	}
profile
web developer

0개의 댓글