Ajax사용하여 아이디중복체크를 구현했는데
문제가 발생했다.
success:function($data)
부분의 $data가 " "no"" 이런식으로 앞에 공백값이 찍히는것이다...
엔터값없이 다른 소스들을 다 붙여보아도 공백의 길이만 줄어들 뿐 공백이 사라지진 않았다.
이럴 때 해결방법은..
배열로 담아서 보내버리기!
아이디 중복 체크.jsp 에
JSONArray ja = new JSONArray();
ja.add(result);
out.print(ja.toJSONString()); 배열로 전송한다.
try {
ps = con.prepareStatement(sql_Select);
rs = ps.executeQuery();
if (rs.next() == true) {
result="no";
} else {
result="ok";
}
// JSONObject(키값, 데이터), JSONArray(응답만 받을 때)
JSONArray ja = new JSONArray();
ja.add(result);
out.print(ja.toJSONString()); //배열로 전송
} catch (Exception e) {
out.print("오류");
}
사용자 메세지 출력.jsp (Ajax로 값 넘기고 받기)
그리고 Ajax success 부분에서
var $j = $.parseJSON($data);
$.parseJSON = JS(JSON.parse)
if($j[0]=="no")
같이 배열로 받아서 출력한다.
//중복체크
$(function() {
$("#UserIDck").click(function () {
let $ID = $("#UserID").val();
if($ID == ""){
alert("아이디를 입력해주세요");
}
else{
$.fn.idcheck($ID);
//location.href="./add_masterIDCK.jsp?ID="+ $ID;
}
});
$.fn.idcheck=function($ID){
$.ajax({
url:"add_masterIDCK2.jsp",
cache:false,
type:"POST",
data:{"ID":$ID},
dataType:"text",
enctype:"application/x-www-form-urlencoded",
success:function($data){
console.log($data);
var $j = $.parseJSON($data); // $.parseJSON = JS(JSON.parse)
//if($j[0]=="no"){
if($j[0]=="no"){
alert("중복된 아이디입니다.");
}
else{
alert("사용가능한 아이디입니다.");
$("#UserID").attr("readonly",true);
$("#hidden").val($data);
}
},
error:function(){
console.log("통신오류발생~!");
}
});
}
});
728x90
'JAVA > jQuery,Ajax' 카테고리의 다른 글
JSP 내 비동기 처리 방법 (0) | 2023.06.20 |
---|---|
jQuery 대신 자바스크립트를 사용하자 (0) | 2022.11.23 |
도로명 API 장착하기 (0) | 2022.08.02 |
post, form 값 넘기기기 제이쿼리/자바스크립트 (0) | 2022.08.01 |
XMLHttpRequest / 비동기통신 / ajax (0) | 2022.07.31 |
댓글