问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

asp怎样结合Ajax实现验证表单中的数据

发布网友 发布时间:2022-04-26 22:20

我来回答

2个回答

懂视网 时间:2022-05-15 05:14

这篇文章主要介绍了零基础学习AJAX之制作自动校验的表单,需要的朋友可以参考下

传统网页在注册时检测用户名是否被占用,传统的校验显然缓慢笨拙。

当ajax出现后,这种体验有了很大的改观,因为在用户填写表单时,签名的表单项已经发送给了服务器,然后根据用户填写好的内容进行数据查询。在查询号无需页面刷新就自动给了提示。类似这样的应用大大的提高了用户的体验,本节简单介绍自动校验表单制作方法。从原理上分析ajax的作用。

1.搭建框架

首先为html框架

<form name="register">
<p><label for = "User">输用户名<input type="text" name="User" id="User"></label><span id="UserResult"></span></p>
<p><label for = "passwd1">输入密码<input type="password" name="passwd1" id="passwd1"></label></p>
<p><label for = "passwd2">重复输入<input type="password" name="passwd2" id="passwd2"></label></p>
<p><input type="submit" value="注册"></p>
<p><input type="reset" value="重置"></p>
</form>

2.建立异步请求

当用户输完“用户名”开始输入别的表单时进行后台校验,代码如下:

输用户名<input type="text" name="User" id="User" onblur="startCheck(this)">
在函数startCheck()中,直接发送this关键字,将文本框对象自己作为参数传递,而函数本身则首先判断用户是否输入为空,如果为空,则直接返回,并聚焦用户名文本框,给出相应的提示。

function startCheck(oInput){
//判断是否有输入,没有输入则直接返回。
if(!oInput.value){
oInput.focus();//聚焦到用户名文本框
document.getElementById("User").innerHTML="用户名不能为空";
return;
}
//创建异步请求
//....
}

当用户输入用户名后,用toLowerCase()转化为小写字母,并建立异步请求。

其中showResult()函数用于显示服务器处理返回的responseText文本。

<script type="text/javascript">
var xmlHttp;
function createXMLHttprequest() {
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
}
function startCheck(oInput) {
//判断是否有输入,没有输入则直接返回。
if (!oInput.value) {
oInput.focus(); //聚焦到用户名文本框
document.getElementById("User").innerHTML = "用户名不能为空";
return;
}
//创建异步请求
createXMLHttpRequest();
var sUrl = "1-9.aspx?user=" + oInput.value.toLowerCase() + "×tamp=" + new Date().getTime();
xmlHttp.open("GET", sUrl, true);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
showResult(xmlHttp.responseText); //显示服务结果
}
xmlHttp.send(null);
}
</script>

3.服务器处理

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Data" %>
<%
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma","no-cache");
if(Request["user"]=="isaac")
Response.Write("Sorry, " + Request["user"] + " already exists.");
else
Response.Write(Request["user"]+" is ok.");
%>

4.显示异步查询的结果

在用户输入表单其它项目时,异步返回结果已经在后台悄悄完成。

function showResult(sText) {
var oSpan = document.getElementById("UserResult");
oSpan.innerHTML = sText;
if (sText.indexOf("already exists") >= 0)
//如果用户名已被占用
oSpan.style.color = "red";
else
oSpan.style.color = "black";
}

以上代码是对服务器返回结果的显示。

该案例的完整代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
}
function showResult(sText) {
var oSpan = document.getElementById("UserResult");
oSpan.innerHTML = sText;
if (sText.indexOf("already exists") >= 0)
//如果用户名已被占用
oSpan.style.color = "red";
else
oSpan.style.color = "black";
}
function startCheck(oInput) {
//首先判断是否有输入,没有输入直接返回,并提示
if (!oInput.value) {
oInput.focus(); //聚焦到用户名的输入框
document.getElementById("UserResult").innerHTML = "用户名不能为空";
return;
}
//创建异步请求
createXMLHttpRequest();
var sUrl = "1-9.aspx?user=" + oInput.value.toLowerCase() + "×tamp=" + new Date().getTime();
xmlHttp.open("GET", sUrl, true);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
showResult(xmlHttp.responseText); //显示服务器结果
}
xmlHttp.send(null);
}
</script>
<form name="register">
<p>
<label for="User">输用户名
<input type="text" name="User" id="User" onblur="startCheck(this)">
</label><span id="UserResult"></span>
</p>
<p>
<label for="passwd1">输入密码
<input type="password" name="passwd1" id="passwd1">
</label>
</p>
<p>
<label for="passwd2">重复输入
<input type="password" name="passwd2" id="passwd2">
</label>
</p>
<p>
<input type="submit" value="注册">
</p>
<p>
<input type="reset" value="重置">
</p>
</form>
</body>
</html>

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

基于Ajax实现下拉框联动显示数据

jquery中的ajax同步和异步详解

jquery中的ajax异步上传

热心网友 时间:2022-05-15 02:22

这东西实现起来其实也不难,但是人家写出来的代码不能直接引用,说好像也不怎么好说,我尽量写得让人容易懂的,希望你看得懂吧,我尽力了!这是我曾经写过的一个,我将

一些东西改了一下,你只需要按照注释改改你需要改的东西就行了。

1 首先你要新建一个名称为ajax_user.asp的ASP文件,将里面的HTML全部清空(记住是全部)!就是一个空白文件,保存到你注册页面文件同级目录下,然后加上这些代码:
(这个文件按照你实际情况改好了后,最好在浏览器打出这个文件的路径并在路径后面加上?user=aaaa测试一下,如果没提示错误,就可以了,)
===============ajax_user.asp的内容==================(不要复制我)

<%response.Charset="gb2312"%>
<%
'定义变量user用来储存ajax发送请求链接中带的user值
set conn = server.createobject("ADODB.connection")
conn.open "driver={microsoft Access driver (*.mdb)};dbq="&server.mappath("数据库路径") '此处需要作实际改动!

dim user
user = request.querystring("user")
if user<>"" then
set rs_user = server.createobject("ADODB.recordset")
rs_user.open "select * from 会员表 where 账号字段='"&user&"'",conn,1,1 '此处需要作实际改动!
if rs_user.eof then
'用户名可用的提示信息,可以依实际情况改动!
response.write "<font color='green'>恭喜,此用户名可用!</font>"
else
'用户名不可用的提示信息,可以依实际情况改动!
response.write "<font color='red'>此用户名已被注册!</font>"
end if
end if
%>

===============ajax_user.asp的内容==================(不要复制我)

2 然后在你的注册页面的<head></head>之间加上如下代码:

<script type="text/javascript" language="javascript">
http_request = null;
function createAjax(){
if(window.XMLHttpRequest){
//Mozilla,Safari
http_request = new XMLHttpRequest();
if(http_request.overrideMimeType){
http_request.overrideMimeType('text/xml');
}
}else if(window.ActiveXObject){
//IE
try{
http_request = new ActiveXObject("Mszml2.XMLHTTP");
}catch (e){
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
alert("exception");
}
}
}
}

//==============需要改动的都在右边作了注释的!================
function user_add(){
var user = document.getElementById("账号输入文本框的id").value; //此处需要作实际改动!
var url = "ajax_user.asp?user="+user; //ajax_user.asp的路径不要动
var myDate = new Date();
var hours = myDate.getHours();
var minutes = myDate.getMinutes();
var seconds = myDate.getSeconds();
var times = hours+"H"+minutes+"M"+seconds+"S";
//post auto saved data
if(user!="" && user.length>=3 && user.length<=6){ //此处需要作实际改动,3和6分别为用户名要求的最少字符数和最多字符数
createAjax();
http_request.onreadystatechange=user_Ajax;
http_request.open("POST",url+"×="+times,true);
http_request.send(null);
}
}

function user_Ajax(){
var warningDiv = document.getElementById("显示提示信息的容器的id"); //此处需要作实际改动!
if(http_request.readyState == 4){
if(http_request.status == 200 || http_request.status == 0){
var requestContent = http_request.responseText;
warningDiv.innerHTML = requestContent;
}else if(http_request.status == 404 || http_request.status == 2){
alert("404 (Not Found),未找到请求文件!");
}else{
alert("请求数据过程中出现错误!"+http_request.status);
}
}else{
warningDiv.innerHTML = "检测中...";
}
}
</script>

3 接着在你的账号文本框里加入如下属性:
假如这个是账号文本框
<input type="text" name="user" id="user" onblur="user_add()"/>
那么,当输入完毕点账号文本框失去焦点就会检测
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
谁能给个单机版的风云之雄霸天下啊?? 求风云雄霸天下PC单机游戏WIN7版 雄霸天下任务指南 开心网001老房子卖了以后家具还有吗? 为什么001开心网买房子组件删除仓库里的东西都没了 请教一下,开心001的开心庄园里面的建材有好多富余的的 除了5元一个卖... 开心网001小号怎么给大号送房子? 开心网001多少级能送别人房子?多少级能接受别人给的房子? 开心网001果实或家具能送人吗 开心网(kaixin001)怎么买外地房子? jquery如何实现ajax验证验证码是否正确,加提示 丹顶鹤和黑颈鹤怎么区分 如何使用ajax验证表单? 希望有一个可以直接参考的代码,谢谢。_百度... 丹顶鹤涂什么颜色 求ajax进行表单验证的例子,多谢 白鹤的颜色 丹顶鹤长什么样子? 丹顶鹤的样子是怎样的??? 小蝌蚪是怎样长成青蛙? 找好看的丹顶鹤简笔画! 柯南中KID1412是什么意思? 丹顶鹤简笔画 野生动物的简笔画 好看的丹顶鹤彩色儿童简笔画 简笔怎么画“丹顶鹤展翅飞翔”的图画? 小蝌蚪是怎样变成青蛙的,画一画 kid什么意思 小蝌蚪怎么变成青蛙的画 男朋友给你备注kid是什么意思? 小蝌蚪是怎样变成青蛙的画 kid-clean是什么意思? kidの含义 丹顶鹤与天鹅有什么区别 validform用ajax提交表单时怎么验证 白鹤的各个部位各是什么颜色 jquery 表单验证的ajax 设计一个JSP页面,利用AJAX异步提交表单数据进行验证。 丹顶鹤有哪些寓意? AJAX完全小白,需求一AJAX异步表单验证用户信息是否在数据库中存在,教明... ajax进行表单验证,不能为空并且只能为英文或者数字或者下划线组成的2... php ajax验证表单效果代码 多次ajax远程调用bootstrapvalidator验证表单,bootstrapvalidator not... Ajax+JS弹出提示 实例 维生素b6 和维生素c直接用在皮肤上有什么作用? java web中如何用ajax技术来检验注册的用户名数据库中是否存在的实例... 怎么使用ajax实现简单表单提交 维生素b6敲碎敷脸一次几片 怎样用ajax实现表单不能为空的验证 维生素c 维生素b6药丸可以用来按摩脸吗? 我用AJAX+php做了个验证页面,请问最近该如何验证所有表单内容是否通过... ajax表单验证提交问题, check()函数该怎么写,f1()函数该怎么设置返回... ...3.2.3利用Ajax前台实现验证码验证,但通过form表单的按钮提交后,验证...