国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JSP > 正文

jsp+ajax實(shí)現(xiàn)無(wú)刷新(鼠標(biāo)離開(kāi)文本框即驗(yàn)證用戶名)實(shí)現(xiàn)思路

2024-09-05 00:21:00
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
jsp+ajax實(shí)現(xiàn)無(wú)刷新,鼠標(biāo)離開(kāi)文本框即驗(yàn)證用戶名,很方便的功能,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)ajax無(wú)刷新有所幫助

jsp+ajax實(shí)現(xiàn)無(wú)刷新,鼠標(biāo)離開(kāi)文本框即驗(yàn)證用戶名,操作如下:新建一個(gè)輸入頁(yè)面,起名為input.jsp,

復(fù)制代碼 代碼如下:


<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>jsp+ajax實(shí)現(xiàn)無(wú)刷新_鼠標(biāo)離開(kāi)文本框即驗(yàn)證用戶名</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
.style1 {
color: #FF3333;
font-weight: bold;
}
.style14 {
font-size: 13px
}
.text12black {
font-size: 12px;
}
</style>
</head>
<body bottomMargin="0" leftMargin="0" topMargin="0" rightMargin="0"
marginheight="0" marginwidth="0">
<table cellpadding="0"
cellspacing="0">
<tr>
<td></td>
</tr>
</table>
<script language="javascript">
//創(chuàng)建XMLHttpRequest對(duì)象
function GetO() {
var ajax=false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}
function getMyHTML(serverPage, objID) {
var ajax = GetO();
//得到了一個(gè)html元素,在下面給這個(gè)元素的屬性賦值
var obj = document.all[objID];
//設(shè)置請(qǐng)求方法及目標(biāo),并且設(shè)置為異步提交
ajax.open("post", serverPage, true);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
//innerHTML是HTML元素的屬性,如果您不理解屬性那就理解為HTML元素的變量
//ajax.responseText是服務(wù)器的返回值,把值賦給id=passport1的元素的屬性
//innerHTML這個(gè)屬性或說(shuō)這個(gè)變量表示一組開(kāi)始標(biāo)記和結(jié)束標(biāo)記之間的內(nèi)容
obj.innerHTML = ajax.responseText;
}
}
//發(fā)送請(qǐng)求
ajax.send(null);
}
function CheckName() {
getMyHTML("check.jsp?groupName="+name_form.group_name.value, "passport1");
}
//這個(gè)函數(shù)的作用是當(dāng)用戶的焦點(diǎn)從其他地方回到group_name這個(gè)輸入框時(shí)再給屬性賦回原內(nèi)容
function sl(tx) {
if(tx=='passport1') {
document.all[tx].innerHTML = "<div>4-20 個(gè)字符 (包括大小寫字母,中文,數(shù)字,特殊字符等) 1個(gè)漢字等于2個(gè)字符,建議使用中文。注冊(cè)后不可修改。</div>";
}
}
</script>
<form method=post>
<table bordercolor="#96D6E8"
class="text12black">
<tr>
<td>
用戶名:
</td>
<td>
<INPUT type="text" value="" size=30
maxlength="50" onBlur="javaScript:CheckName();"
onFocus="return sl('passport1');" />
<br />
<div></div>
</td>
<td valign="top">
<div>
<span>4-20 個(gè)字符 (包括大小寫字母,中文,數(shù)字,特殊字符等)
1個(gè)漢字等于2個(gè)字符,建議使用中文昵稱。注冊(cè)后不可修改。</span>
</div>
</td>
</tr>
</table>
</form>
</body>
</html>


在新建一個(gè)校驗(yàn)頁(yè)面,起名為check.jsp,代碼如下:

復(fù)制代碼 代碼如下:


<%@ page contentType="text/html; charset=utf-8"%>
<%
String action = "";
String groupname = "";
//檢查用戶名
//用作數(shù)據(jù)庫(kù)聯(lián)接,可以根據(jù)你的情況修改,如果為測(cè)試可以不用*作記號(hào)的語(yǔ)句
try {
action = request.getParameter("action");
groupname = request.getParameter("groupName").trim();
if ("".equals(groupname)) {
out.println("<div>用戶名不能為空!</div>");
} else if (groupname.length() < 4 || groupname.length() > 20) {
out.println("<div>用戶名"
+ groupname + "不合法!(長(zhǎng)度為4到20位,且不能使用?#=等特殊字符)</div>");
} else if ("zhangsan".equals(groupname)) {
out.println("<div>" + "用戶名"
+ groupname + "已被占用,請(qǐng)重新輸入!</div>");
} else {
out.println("您的用戶名可用");
}
} catch (Exception e) {
System.out.println(request.getServletPath() + " error : "
+ e.getMessage());
}
%>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔东| 呼图壁县| 高平市| 镇沅| 嵩明县| 丹阳市| 方山县| 鸡西市| 涞水县| 武宣县| 惠州市| 湟中县| 肇源县| 澜沧| 广南县| 海丰县| 南汇区| 马边| 上林县| 平遥县| 临湘市| 徐水县| 交口县| 大石桥市| 澄江县| 米脂县| 当阳市| 呼和浩特市| 白玉县| 乐昌市| 舞阳县| 崇州市| 汶川县| 伊金霍洛旗| 准格尔旗| 华蓥市| 河北区| 梨树县| 乌鲁木齐县| 克东县| 永嘉县|