注册 登录
编程论坛 ASP.NET技术论坛

ajax的问题

等待冰柠檬 发布于 2010-04-20 09:29, 682 次点击
function checkinput()
{
var yh = trim(document.getElementById('<%= txtYongHu.ClientID %>').value); //用户
var mm = trim(document.getElementById('<%= txtNiMa.ClientID %>').value); //密码
var qrmm = trim(document.getElementById('<%= txtQueRenMiMa.ClientID %>').value); //确认密码
var mmda = trim(document.getElementById('<%= txtMiMaTiShi.ClientID %>').value); //密码提示
var mmts = trim(document.getElementById('<%= txtMiMaDaAn.ClientID %>').value); //密码答案
var check = document.getElementById('<%= chkTongYi.ClientID %>');  //协议是否选中
var rbs = check.getElementsByTagName("INPUT");
if(yh =="")
{
alert("请输入用户名");
return false;
}
if(yh.length<5)
{
alert("用户名长度必须大于5");
return false;
}
if(change2(yh)==false)
{
return false;
}
if(mm=="")
{
alert("请输入密码");
return false;
}
if(mm.length<5)
{
alert("密码长度必须大于5");
return false;
}
if(qrmm=="")
{
alert("请输入确认密码");
return false;
}
if(qrmm.length<5)
{
alert("确认密码长度必须大于5");
return false;
}
if(mm!=qrmm)
{
alert("密码和确认密码不一致");
return false;
}
if(mmts=="")
{
alert("请输入密码提示");
return false;
}
if(mmts.length<9)
{
alert("密码提示长度必须大于9");
return false;
}
if(mmda=="")
{
alert("请输入密码答案");
return false;
}
if(mmda.length<9)
{
alert("密码答案必须大于9");
return false;
}
for (var i = 0; i < rbs.length; i++)
{
    if (rbs[i].checked==false)
    {
       alert("你还没同意服务条款");
       return false;
    }
}
return true;
}



function change2(yh)
{
  var url="ajax/GetUers.aspx?user="+yh+"";   
  createXMLHttpRequestyhm();
  xmlyhm.open("get",url,true);
  xmlyhm.onreadystatechange=showResultyhm;   
  xmlyhm.send(null);
}
  var xmlyhm="";
function createXMLHttpRequestyhm()
{

    if(window.ActiveXObject)
    {
        xmlyhm = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHttpRequest)
    {
        xmlyhm= new XMLHttpRequest();
    }
}   
function showResultyhm()
{
        if(xmlyhm.readystate==4)
        {
            if(xmlyhm.status==200)
            {
                var resResule=xmlyhm.responseText;
                if(resResule=="true")
                {
                  alert("该用户已存在");
                  return false;
                }
                else
                {
                   return true; 
                }              
           }
      }
}


<tr align="center" bgcolor="#FAFAF1" height="22">
    <td class="style1">用户名</td>
    <td class="style2">
        <asp:TextBox ID="txtYongHu" runat="server" MaxLength="13" Width="130px" onblur="change2(this)"></asp:TextBox>
</td>
</tr>

 <asp:Button ID="btnTiJiao" runat="server" onclick="btnTiJiao_Click" OnClientClick="return checkinput()"
            Text="提 交" />


当我输入一个用户存在的帐号的时候,而且密码提示9个字符,首先弹出一个“用户存在”,之后弹出“密码提示长度必须大于9”
照理说 弹出一个“用户存在”就不会弹出“密码提示长度必须大于9”的啊
希望高手帮忙下!
 
4 回复
#2
yms1232010-04-20 13:14
var resResule="";
function checkinput()
{
  var yh=trim(document.getElementById('<%= txtYongHu.ClientID %>').value); //用户
  var mm=trim(document.getElementById('<%= txtNiMa.ClientID %>').value); //密码
  var qrmm=trim(document.getElementById('<%= txtQueRenMiMa.ClientID %>').value); //确认密码
  var mmda = trim(document.getElementById('<%= txtMiMaTiShi.ClientID %>').value); //密码提示
  var mmts = trim(document.getElementById('<%= txtMiMaDaAn.ClientID %>').value); //密码答案
  var check = document.getElementById('<%= chkTongYi.ClientID %>');  //协议是否选中
  var rbs = check.getElementsByTagName("INPUT");
  if(yh =="")
  {
     alert("请输入用户名");
     return false;
  }
  if(yh.length<5)
  {
     alert("用户名长度必须大于5");
     return false;
  }
  change2(yh);
  if(resResule=="true")
  {
     return false;
  }
  if(mm=="")
  {
    alert("请输入密码");
    return false;
  }
  if(mm.length<5)
  {
     alert("密码长度必须大于5");
     return false;
  }
  if(qrmm=="")
  {
    alert("请输入确认密码");
    return false;
  }
  if(qrmm.length<5)
  {
   alert("确认密码长度必须大于5");
   return false;
  }
  if(mm!=qrmm)
  {
    alert("密码和确认密码不一致");
    return false;
  }
  if(mmts=="")
  {
    alert("请输入密码提示");
    return false;
  }
  if(mmts.length<9)
  {
    alert("密码提示长度必须大于9");
    return false;
  }
  if(mmda=="")
  {
    alert("请输入密码答案");
    return false;
  }
  if(mmda.length<9)
  {
    alert("密码答案必须大于9");
    return false;
  }
  for (var i = 0; i < rbs.length; i++)
  {
     if (rbs[i].checked==false)
     {
        alert("你还没同意服务条款");
        return false;
    }
 }
 return true;
}



function change2(yh)
{
  var url="ajax/GetUers.aspx?user="+yh+"";   
  createXMLHttpRequestyhm();
  xmlyhm.open("get",url,true);
  xmlyhm.onreadystatechange=showResultyhm;   
  xmlyhm.send(null);
}
var xmlyhm="";
function createXMLHttpRequestyhm()
{

    if(window.ActiveXObject)
    {
        xmlyhm = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHttpRequest)
    {
        xmlyhm= new XMLHttpRequest();
    }
}   
function showResultyhm()
{
        if(xmlyhm.readystate==4)
        {
            if(xmlyhm.status==200)
            {
                resResule=xmlyhm.responseText;
                if(resResule=="true")
                {
                  alert("该用户已存在");
                  return false;
                }
                else
                {
                   return true; 
                }              
           }
      }
}


<tr align="center" bgcolor="#FAFAF1" height="22">
    <td class="style1">用户名</td>
    <td class="style2">
        <asp:TextBox ID="txtYongHu" runat="server" MaxLength="13" Width="130px" onblur="change2(this)"></asp:TextBox>
</td>
</tr>

<asp:Button ID="btnTiJiao" runat="server" onclick="btnTiJiao_Click" OnClientClick="return checkinput()"
            Text="提 交" />
change2并不会返回false的,因为你的响应函数showResultyhm会返回false,但change2接收不到返回结果。
#3
misswang2010-04-20 23:30
..
#4
aspic2010-04-21 12:20
..
#5
saitor2010-04-21 21:27
checkinput和change2根本就没有关联,你函数凋用关系有点混乱啊,你应该在你判断字符串完全符合你的要求之后在请求,不管是在CLICK还BLUR事件里。
1