简单运用Ajax判断账号是否已经存在

   今天不上班,还在端午休假中,所以随便上来写写东西,以下代码因为没开服务器,没通过调试,所以不保证没有错误,权当是一个思路。

   以注册bs用户为例,我以前写注册代码的时候,会将用户个人资料存放在一个视图中,注册新用户的时候输入一个帐号,系统判断该帐号是否存在于系统中。这样运用Ajax是一个最好的方法,方便了用户交互。下面写写大概思路:

首先.创建注册表单(至于注册到names数据库的代码,这里不多讲),在表单的JS Header中写以下javascript函数:主要功能为创建XMLHTTP对象,定义回调函数处理服务器返回的数据。代码大概如下:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
var request;
function checkregistename()

{
request 
= new ActiveXObject("Msxml2.XMLHTTP")
if (!request){
  request
=new ActiveXObject("Microsoft.XMLHTTP");}
  request.onreadystatechange
=backloginname;   //设定回调函数

  
//这里XX/XXXX.nsf假设为数据库路径,且表单中输入用户名的域名是loginID,我们要将这个域的值传递到代理中
  url="/XX/XXXX.nsf/checkId?openagent&Id="+document.forms[0].loginID.value;   //checkId为服务器端代理名称
  request.open("post",url,true);   //运行url中的代理,并通过代理运行获得需要的数据进行判断并生成的xml文档并传给表单

  request.send(
null);
}
function backloginname()  //定义回调函数

{
if (request.readystate==4){
  
if (request.status==200){
   
if (request.responseText.indexOf("1")>-1)

{
    alert (
" 对不起,该帐号已经存在!");
    document.forms[
0].loginID.value=""//重新设定域为空
    document.forms[0].loginID.focus();  //使域获得焦点
   }
  }
}
}

   第二.创建一个名称为checkId的代理:

ContractedBlock.gif ExpandedBlockStart.gif Code
Sub Initialize
Dim s As New NotesSession
Dim doc,docx As NotesDocument
Dim view As NotesView
Dim db As NotesDatabase
Set doc=s.DocumentContext
Set db=s.CurrentDatabase
Set view=db.GetView("IDview")     'IDview这个视图即为帐号用户ID的视图,视图第一列为用户名
macro=|@RightBack(Query_String_Decoded;"=")|    '这句是获取从URL传过来的参数,即输入的用户名ID

id
=Evaluate(macro,doc) 
Set docx=view.GetDocumentByKey(id(0),True)
Print 
"Content-type: text/xml"      '输出xml表头
If Not docx Is Nothing Then
  Print 
"1"        'xml文档内容,1为已经存在,0为不存在
Else
  Print 
"0"
End If
End Sub

   第三.在注册表单中的loginID域,在这个域的onchange或者onblur事件中调用javascript方法checkregistename(),表示在用户输入完要注册的id后马上进行是否已经存在的判断。

 

转载于:https://www.cnblogs.com/haitunzhilian/archive/2009/05/30/ajaxcheckID.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值