我有這個jsp文檔(如下)。基本上,當用戶輸入文本框時,如果數據庫中存在用戶名/長度爲< 5等,我想顯示一個錯誤。JQuery/AJAX代碼錯誤 - 在文本框中鍵入文本時不顯示
我希望通過jQuery/AJAX無需刷新即可同時顯示這些錯誤。我做到了這一點,但似乎沒有工作。這裏,CheckAvailability和Success是servlet,CheckVailability檢查數據庫中是否存在。
JSP文件:
<!DOCTYPE html>
<html>
<head>
<script src="js/jquery-1.11.3.js"></script>
<script>
$(document).ready(function() {
$('#username').keyup(function() {
var name = $('#username').val();
$.get('CheckAvailability?username='+name,function(responseText){
$('#status').text(responseText);});});
</script>
</head>
<body>
<form id="login_form" ><input type="text" placeholder="username" name="username" class="style-4" required="required" action="Success"/>
<div id="status"> </div>
CheckAvailability的Servlet
public class CheckAvailability extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection conn=null;
Statement s=null;
ResultSet rs=null;
PreparedStatement ps;
try {
//make connection
String userid = request.getParameter("username");
String arr;
Class.forName("oracle.jdbc.OracleDriver");
if (userid.equals("")) {
arr = "Error: User name cannot be empty";
} else if(userid.length()<5){
arr="Error: Username cannot be less than 5 characters.";
}
else
{
String table="user1.app_users";
String p = "alpha";//database password
String query = "select userid from " + table + " where userid='" + userid + "'";
String url = "jdbc:oracle:thin:system/" + p + "@localhost:1521:XE";
conn = DriverManager.getConnection(url);
s = conn.createStatement();
ps = conn.prepareStatement(query);
rs = ps.executeQuery();
if (!rs.next()) {
arr="UserID <b>" + userid + "</b> is available.";
} else {
arr= "Error: UserID <b>" + userid + "</b> is already in use.";
}
}
response.setContentType("text/plain");
response.getWriter().write(arr);
}catch (SQLException se) {
out.println("Error ->" + se.getMessage());
} catch(ClassNotFoundException ce)
{
out.println("Error ->" + ce.getMessage());
}finally {
out.close();
}
}
}
但正如我在文本框中鍵入此不顯示任何內容。 servlet在提交時觸發。沒有發生的事情是文本沒有顯示出來。代碼執行,在我的IDE沒有錯誤。我不能完全運行這個servlet,它會給出錯誤信息:'HTTP方法GET不被這個URL支持',即當我使用參數運行它時。我在裏面輸入了字符串用戶名=「user12」,並且沒有運行。有人可以指出我的錯誤嗎?我是jQuery/AJAX的新手。
你還沒有完成'});''準備好''' – Tushar
謝謝你指出......但即使糾正後,它不起作用。 – user2816215