Ajax實現(xiàn)異步刷新驗證用戶名是否已存在的具體方法
來源:易賢網(wǎng) 閱讀:2459 次 日期:2014-10-11 14:18:17
溫馨提示:易賢網(wǎng)小編為您整理了“Ajax實現(xiàn)異步刷新驗證用戶名是否已存在的具體方法”,方便廣大網(wǎng)友查閱!

由于要做一個注冊頁面,看到許多網(wǎng)站上都是使用Ajax異步刷新驗證用戶名是否可用的,所以自己也動手做一個小實例

都是簡單的實例,所以直接發(fā)代碼

靜態(tài)頁面Ajax.html

代碼如下:

<html>

<head>

<title>Ajax</title>

<script type="text/javascript">

function loadXMLDoc() {

if (document.getElementById("account").value == "") {

document.getElementById("accDiv").innerHTML = "用戶名不能為空";

return;

}

var xmlHttp;

if(window.XMLHttpRequest) { // code for IE7+

xmlHttp = new XMLHttpRequest();

}

else { // code for IE5/IE6

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

xmlHttp.onreadystatechange = function () {

if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {

//document.getElementById("myDiv").innerHTML=xmlHttp.responseText;

if (xmlHttp.responseText == "true") {

document.getElementById("accDiv").innerHTML = "用戶名不可用";

}

else {

document.getElementById("accDiv").innerHTML = "用戶名可用";

}

}

}

var a = document.getElementById("account").value;

// get

xmlHttp.open("GET", "validate.aspx?account=" + a + "&random=" + Math.random, true);

xmlHttp.send();

}

function delData() {

document.getElementById("account").value = "";

document.getElementById("accDiv").innerHTML = "";

}

</script>

</head>

<body>

<h3>ajax</h3>

<table>

<tr>

<td>賬號:</td><td><input id="account" type="text" onblur="loadXMLDoc();" onfocus="delData();"/></td><td><div id="accDiv"></div></td>

</tr>

<tr>

<td>密碼:</td><td><input id="passwd" type="password" /></td>

</tr>

<tr>

<td>確認密碼:</td><td><input id="vPasswd" type="password" /></td>

</tr>

<tr>

<td>姓名:</td><td><input id="name" type="text" /></td>

</tr>

</table>

</body>

</html>

在賬號輸入框失去焦點時調(diào)用函數(shù)

訪問服務(wù)器使用的是Get方法,所以在參數(shù)處使用了附加隨機碼來避免緩存。

驗證頁面validate.aspx后臺代碼:

代碼如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Configuration;

using System.Data.Sql;

using System.Data.SqlClient;

public partial class Ajax_validate_validate : System.Web.UI.Page

{

public SqlConnection conn;

protected void Page_Load(object sender, EventArgs e)

{

Response.Clear();

if (Exists(Request.QueryString["account"]))

Response.Write("true");

else

Response.Write("false");

Response.End();

}

/// <summary>

/// 獲取數(shù)據(jù)庫連接

/// </summary>

/// <returns></returns>

protected SqlConnection GetConnection()

{

string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

conn = new SqlConnection(str);

return conn;

}

protected bool Exists(string account)

{

using (GetConnection())

{

try

{

conn.Open();

string sqlStr = "select count(*) from userinfo where account='" + account + "'";

SqlCommand cmd = new SqlCommand(sqlStr, conn);

int row = Convert.ToInt32(cmd.ExecuteScalar());

if (row > 0)

return true;

else

return false;

}

catch (Exception e)

{

throw e;

}

finally

{

conn.Close();

}

}

}

}

在后臺中驗證用戶名是否已經(jīng)存在于數(shù)據(jù)庫中,返回真或者假

數(shù)據(jù)庫很簡單,只建了一張表userinfo,有3個字段:account、passwd、name

注意:在后臺往請求頁面寫數(shù)據(jù)時,當(dāng)寫完要發(fā)送的數(shù)據(jù)之后,需要調(diào)用Response.end()方法來終止寫入,否則可能會發(fā)送一個完整頁面過去。

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)