用compareValidator来做文本框"密码"和"确认密码"的内容是否一致的判断,ControlToCompare设定"密码ID",ControlToValidate设定"确认密码ID".用AXJA的ValidatorCallout控件来做信息提示.
问题1:
 当"密码"框输入而"确认密码"框为空时,compareValidator控件没有做验证处理,可以直接提交页面,为什么?问题出在哪?
问题2:
 当"密码"框"确认密码"框都输入但不相等时,出现了信息提示,但是不管提示信息,直接点保存BUTTON时,还可以提交画面,为什么?怎么办?以上问题,求高手指点!

解决方案 »

  1.   

    将验证控件的EnableClientScript="false"
      

  2.   

    密码框要拖个非空验证控件两个问题就解决了,或者ControlToCompare和ControlToValidate属性验证控件调换位置也可以,具体看你的需求
      

  3.   

    每一个文本框都需要RequiredFieldValidator来验证是否为空
      

  4.   

    看你在前台验证还是后台验证, 还有,有没有设ValidateGroup 
    后台验证,在savebutton里加上if(!Page.IsValid) return;
      

  5.   


    ControlToCompare和ControlToValidate换下位置,其实解决不了实际问题,如果换了位置,这时候"密码"框为空而"确认密码"框不为空时,又不能验证了,对吧?
      

  6.   

    哈哈~无厘头的办法,再加一个CompareValidator,反过来设置不就行了吗?偶密证通过,对了,记得将Display属性改成Dynamic
    JF^_^
      

  7.   

    为什么不用text来做提示信息呢?
    首先验证两控件不能为空,再比较两者值即可。代码见下:密码:<asp:textbox  id="txtpwd" runat="server" textmode="password" />*
         <asp:requiredfieldvalidator id="validator11" runat="server" ControlToValidate="txtpwd" text="不能为空"/><br>
     确认密码:<asp:textbox id="txtpwdqr" runat="server" textmode="password"/>*
             <asp:requiredfieldvalidator id="validator12" runat="server" ControlToValidate="txtpwdqr" text="不能为空"/>
     <asp:comparevalidator id="validator10"  runat="server"  ControlToValidate="txtpwdqr"  ControlToCompare="txtpwd"  operator="equal" text="两个密码不一致" type="String" /><br>