情况是这样的:  这个页面是个注册页面(内容页),有用户名和密码等资料,我在页面上分别放置了两个textbox控件,两个非空验证控件,一个label控件和一个提交按钮,然后当用户名输入后先去判断此用户是否注册过了(使用了AJAX异步回传,textbox的textchanged事件),如果注册过了这label显示用户注册过了(label添加了style="display:none属性,后台写了判断改用户是否存在的代码并相应改变了style的值)",目前这步没问题。后来想提交按钮必须在label不显示出来且密码框的验证能通过的时候,提交按钮才能提交,所以又写了如下代码:  funticon isusername()
{
   if(document.getelementbyid("<%=label1.clientid%>").style.display=="block")
 {
           alert("用户名已存在,请重新输入");
     return false;
  }
else
{
      return true;
}
}   <asp: button id="button1" runat="server" onclick="button_xxx" onclientclick="return isusername();">
  可这样问题出来了,当用户已注册过了确实是无法提交,可当用户名可以注册但密码框还没写的时候,却也可以提交,好像密码框那个验证不起作用了,为什么会这样,如何解决?(不要叫我改变提交到后台去再次判断用户名是否可注册)

解决方案 »

  1.   

    用AJAXPRO 来实现。如果用户名密码符合要求 设置button的enable属性为true;否则为false。也是一个异步的过程。
      

  2.   

    问题解决了,瞎碰代码改为
     funticon isusername()
    {
      if(document.getelementbyid("<%=label1.clientid%>").style.display=="block")
     {
      alert("用户名已存在,请重新输入");
      this.isvalid=false;
      }}  <asp: button id="button1" runat="server" onclick="button_xxx" onclientclick="isusername();">
      

  3.   

    因为自己写的,要是二次开发的话,可以立马找到怎么修改,在哪里修改等都很方便,如果你用控件的话,当需求发生变化时,改起来很麻烦的。
    我也建议你自己写,用js 和ajax来做验证判断,或是直接在后台判断也可。
      

  4.   

    直接调用jquery不就不会出现这种问题~\(≧▽≦)/~啦啦啦