php AJAX验证表单的一点问题

小弟在做用户注册的时候出了点问题,问题描述:当用户输入注册用户名时,利用AJAX,在动态页面检查该用户名是否存在,一般情况下,这种用户注册验证分为两步,第一步利用JS检查... 小弟在做用户注册的时候出了点问题,
问题描述:当用户输入注册用户名时,利用AJAX,在动态页面检查该用户名是否存在,一般情况下,这种用户注册验证分为两步,第一步利用JS检查用户名是否为空,若满足JS的判断要求,第二步在提交数据的时候,检查是不是符合用户名是否存在这个要求(利用AJAX+PHP的返回值判断);
代码如下:
<form id="myform" action="do.php" method="POST">
用户名:<input type="text" id="username" onchange="checkname()/> //checkname()的代码在下面,主要是利用AJAX+PHP检测用户是否已经存在
<input type="submit" onclick="return checkform()" value="提交" />
//checkform()主要是最后提交的时候检测整个表单是否符合要求,然后再决页面是否跳转到do.php中去;
</form>
//function checkname()代码是:
function checkname()
{
var http_Ajax=createAjax(); //具体的创建HTTPREQUESTHTml对象我就不贴出了绝对没问题;
var username=document.getElementById('username').value;
var url="../register/checkName.php? username="+username; //检测用户是否存在的页面,如果不存在返回1;
url=encodeURI(url); //编码。确保中文可以输入
url=encodeURI(url); //编码
http_Ajax.open("GET",url,true);
http_Ajax.send(null);
http_Ajax.onreadystatechange=function()
{
if(http_Ajax.readyState==4)
{
var
text=http_Ajax.responseText;
if(text==1) //可以注册
{

return true;
}

else //不可以注册
{
return false;
}
}
}
}
}
//最后的checkform()代码是:
checkform()
{
if(document.myform.username.value == "")
{
alert("用户名输入有误");
document.myform.username.focus();
return false;
if(!checkname()) //checkname()返回true 表示可以注册
{
return false;
}
return true; //最后如果都满足。则执行do.php
}
请大家帮我看看,问题出在哪了,即使用户名已经存在了,他也执行了do.php并不是停留在表单的页面
谢谢一楼的回答,是我的疏忽,其实是有输入用户名的;只不过在AJXA那里,少了一句话,就是如果可以注册即返回1,那么document.getElementById('notice').innerHTML="恭喜可以注册"; (在表单中也会加入一个span标签ID为:nocice)
展开
 我来答
百度网友6606ac94b
2010-04-11 · TA获得超过1151个赞
知道小有建树答主
回答量:1331
采纳率:0%
帮助的人:1274万
展开全部
建议你在JavaScript里面使用一个“全局”变量,比如isUsernameAvailable,并置它的初始值为false,而且在提交表单时检查它的值,然后才能提交的。并且只有Ajax检查用户名不存在才能赋值为true。
PS:http_Ajax.onreadystatechange=function(){}应该放到
http_Ajax.open("GET",url,true);前面的。
手机用户45153
2010-04-10
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
<input type="text" id="username" onchange="checkname()/>
文本框没有onchange事件 改成失去焦点 onfocus
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式