溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jQuery+Ajax怎么實(shí)現(xiàn)用戶名重名實(shí)時(shí)檢測(cè)

發(fā)布時(shí)間:2021-05-18 13:45:06 來(lái)源:億速云 閱讀:227 作者:小新 欄目:web開(kāi)發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)jQuery+Ajax怎么實(shí)現(xiàn)用戶名重名實(shí)時(shí)檢測(cè),小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

利用jQuery框架,封裝了底層的Ajax異步技術(shù),通過(guò)簡(jiǎn)單的方法調(diào)用即可實(shí)現(xiàn)。這篇博客是針對(duì)用戶注冊(cè)時(shí)出現(xiàn)的用戶名重名問(wèn)題的自動(dòng)檢測(cè),利用的技術(shù)是Ajax異步傳輸。

register.jsp 注冊(cè)顯示頁(yè)面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>

<body>
 <form action="login" method="post" id="myform">
  <table align="center">
   <tr>
    <td>用戶名:</td>
    <td>
     <input type="text" name="name" id="username" title="用戶名" />
     <div id="message"></div>
    </td>
   </tr>
   <tr>
    <td>密碼:</td>
    <td><input type="password" name="pwd" id="userpwd" title="密碼" />
    </td>
   </tr>
   <tr>
    <td>性別:</td>
    <td><input type="radio" name="sex" value="男" title="性別" />男 <input
     type="radio" name="sex" value="女" title="性別" />女</td>
   </tr>
   <tr>
    <td>年齡:</td>
    <td><input type="text" name="age" title="年齡" />
    </td>
   </tr>
   <tr>
    <td>Email:</td>
    <td><input type="text" name="email" title="Email" />
    </td>
   </tr>
   <tr>
    <td colspan="2" align="center"><input type="button" value="注 冊(cè)"
     onclick="check()" /> <input type="reset" value="重 置" /></td>
   </tr>
  </table>
 </form>
</body>
<script type="text/javascript" src="${pageContext.request.contextPath }/script/jquery-3.2.1.js"></script>

<script type="text/javascript">
 // 檢查表單元素的值是否為空
 function check() {
  var myform = document.getElementById("myform");
  for ( var i = 0; i < myform.length; i++) {
   if (myform.elements[i].value == "") {
    alert(myform.elements[i].title + "不能為空");
    myform.elements[i].focus();
    return;
   }
  }
  myform.submit(); // 表單中最后input提交標(biāo)簽用的是button類型,首先不提交表單,在js判斷表單項(xiàng)都不為空時(shí) 再提交表單。
 }

 $(function(){
  $(":input[name='name']").blur(function(){
   var val = $(this).val();
   val = $.trim(val);

   if(val != ""){
    var url = "${pageContext.request.contextPath }/UserServlet"; // 將前端的業(yè)務(wù)轉(zhuǎn)到后端Servlet來(lái)處理。最后Servlet再將結(jié)果返回給前端JSP頁(yè)面
    var args = {"userName":val, "time":new Date()};

    $.post(url, args, function(data){ // URL中處理的結(jié)果都保存在data數(shù)據(jù)中,而data中的格式是Servlet中返回的結(jié)果格式,即為html
     $("#message").html(data);  //將data結(jié)果附加到div中
    });
   }
  });
 });
</script>
</html>

UserServlet 邏輯處理Servlet類,用于對(duì)用戶重名的判斷以及響應(yīng)處理結(jié)果的輸出等。其中用于數(shù)據(jù)庫(kù)檢測(cè)重名的方法省略了(LoginDao.getInstance().checkUserName(userName.trim()); // 查找數(shù)據(jù)庫(kù)是否存在該用戶名)

package com.servlet.user;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dao.LoginDao;
import com.user.UserInfo;

public class UserServlet extends HttpServlet {

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html; charset=UTF-8"); // 設(shè)置響應(yīng)結(jié)果的格式為text/html,字符集為UTF-8
  response.setCharacterEncoding("UTF-8"); // 設(shè)置響應(yīng)結(jié)果的字符編碼為UTF-8
  // 禁止緩存
  response.setHeader("Cache-Control", "no-store,no-cache,must-revalidate");
  response.setHeader("Cache-Control", "post-check=0,pre-check=0");
  response.setDateHeader("Expires", 0);
  response.setHeader("Pragma", "no-cache");

  PrintWriter out = response.getWriter();
  out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  // 從httpRequest()方法中獲得請(qǐng)求參數(shù)值
  // 通過(guò)httpRequest()方法封裝的請(qǐng)求參數(shù)被編碼為UTF-8格式,此處若想還原原來(lái)的編碼格式,則需要通過(guò)UTF-8格式解碼

  String userName = request.getParameter("userName");
  String result = null;
  boolean check = LoginDao.getInstance().checkUserName(userName.trim()); // 查找數(shù)據(jù)庫(kù)是否存在該用戶名
  if (check) {
   result = "<font color='red'>該用戶已經(jīng)被使用</font>";
  } else {
   result = "<font color='green'>該用戶名可以使用</font>";
  }
  response.getWriter().print(result); // 將結(jié)果輸出到response響應(yīng)流中
 }

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  this.doPost(req, resp);
 }

}

jquery是什么

jquery是一個(gè)簡(jiǎn)潔而快速的JavaScript庫(kù),它具有獨(dú)特的鏈?zhǔn)秸Z(yǔ)法和短小清晰的多功能接口、高效靈活的css選擇器,并且可對(duì)CSS選擇器進(jìn)行擴(kuò)展、擁有便捷的插件擴(kuò)展機(jī)制和豐富的插件,是繼Prototype之后又一個(gè)優(yōu)秀的JavaScript代碼庫(kù),能夠用于簡(jiǎn)化事件處理、HTML文檔遍歷、Ajax交互和動(dòng)畫(huà),以便快速開(kāi)發(fā)網(wǎng)站。

關(guān)于“jQuery+Ajax怎么實(shí)現(xiàn)用戶名重名實(shí)時(shí)檢測(cè)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI