# Ajax驗證用戶名
###### tags: `Ajax介紹`

### 程式編寫1
#### login.jsp
```htmlembedded=
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="${pageContext.request.contextPath}/statics/js/jquery-3.6.4.js"></script>
<script>
function a1(){
$.post({
url:"${pageContext.request.contextPath}/a3",
//前面的"name"是要回傳到a3頁面判定
//後面的$("#name")則是從下方的id=name來提取數據回傳
data:{"name":$("#name").val()},
success:function (data){
if(data.toString() === 'ok'){
console.log(1);
}
}
})
}
function a2(){
$.post({
url:"${pageContext.request.contextPath}/a3",
data:{"pwd":$("#pwd").val()},
success:function (data){
console.log(data);
}
})
}
</script>
</head>
<body>
<p>
用戶名:<input type="text" id="name" onblur="a1()">
<span id="userInfo"></span>
</p>
<p>
密碼:<input type="text" id="pwd" onblur="a2()">
<span id="pwdInfo"></span>
</p>
</body>
</html>
```
#### AjaxController 新增 核對的判斷
```java=
@RequestMapping("/a3")
public String a3(String name,String pwd){
String msg = "";
if(name != null){
//admin 這些數據應該在數據庫查詢,這裡為了簡便所以固定
if("admin".equals(name)){
msg = "ok";
}else {
msg = "用戶名有誤";
}
}
if(pwd != null){
//123456 這些數據應該在數據庫查詢,這裡為了簡便所以固定
if("123456".equals(pwd)){
msg = "ok";
}else {
msg = "密碼有誤";
}
}
return msg;
}
```
#### 測試:
1.讓點擊失去焦點後,回傳a3方法

2.輸入預設正確的,respon結果為ok

3.輸入錯誤的,respon結果為"用戶名有誤"

4.帳號正確密碼錯誤,respon結果為"密碼有誤有誤"

測試成功!
### 增加提示顯示在頁面中
```htmlembedded=
<script>
function a1(){
$.post({
url:"${pageContext.request.contextPath}/a3",
//前面的"name"是要回傳到a3頁面判定
//後面的$("#name")則是從下方的id=name來提取數據回傳
data:{'name':$("#name").val()},
success:function (data){
if(data.toString() === 'ok'){
$("#userInfo").css("color","green");
}else{
$("#userInfo").css("color","red");
}
$("#userInfo").html(data);
}
});
}
function a2(){
$.post({
url:"${pageContext.request.contextPath}/a3",
data:{"pwd":$("#pwd").val()},
success:function (data){
if(data.toString() === 'ok'){
$("#pwdInfo").css("color","green");
}else{
$("#pwdInfo").css("color","red");
}
$("#pwdInfo").html(data);
}
});
}
</script>
```
#### 測試


成功!