01/10/2018, 00:59
Thắc mắc form đăng ký javascript ajax
E có một form đăng ký , dùng ajax để kiểm tra username có tồn tại hay chưa, e không biết tại sao if else javascript mà nó không thực hiện lệnh bên trong :’(
code ajax
$("#username").blur(function(){
var username = $("#username").val();
$.ajax({
url: 'CheckUserExist',
data: {
username: username
},
success: function(response){
console.log(response);
if(response=="exist"){
$('.user-message').html("<span style='color:red'>Tài khoản đã tồn tại</span>");
}
else{
$('.user-message').html("<span style='color:green'>Tài khoản có thể sử dụng</span>");
}
},
error: function(){
console.log("err");
}
});
});
Code servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
if(UserDB.isUserExist(username)){
response.getWriter().println("exist");
}
else{
response.getWriter().println("not-exist");
}
}
Kết quả chạy cái form:
E cám ơn
Bài liên quan
Mình nghĩ trong trường hợp này không nên dùng ELSE
Chơi vậy luôn
Nó không chạy luôn bạn ơi không dòng nào chạy hết
Bạn bug nó đã sang dc controller chưa ?
Đầu tiên là bật debug lên xem nó đã đẩy được data lên server chưa bằng cách F12 trình duyệt và debug js. Nếu nhảy vào được success thì xem giá trị của log(response) là gì. Tiếp theo là debug trong code java
doGet đã có annotation chưa?
e kiểm tra nó có đẩy dữ liệu lên server được rồi, console log nó cũng in ra được cái response đúng, mà nó không chạy cái dòng user-message,…kiêm tra code java nó đều chạy if else đúng
Back-end mình dùng java, mình đã kiểm tra nó gửi được username qua doGet() mà, cũng in ra cái response. Nhưng khi mình chạy đánh một cái tên đã có trong database, nó in console ra exist nhưng nó lại không in ra dòng “Tài khoản đã tồn tại” mà chạy dòng màu xanh
Khả năng là không tim thấy ‘user-message’
view mình xem tag có class là .user-message
khi dùng ajax sẽ gọi get, còn dữ liệu từ GET đẩy lên client thì sẽ k thể dùng response như bình thường nhé. Phải dùng PrintWriter như bạn dùng ấy.Lý dó response thì sẽ đẩy page, load lại trang, còn ajax mục đích k để nó load lại trang, và chỉ có pringwriter mới làm được việc đó.