日期:2014-05-20  浏览次数:21139 次

CompareValidator控件不能检验空输入!
做了一个用户注册页面,用CompareValidator检验用户密码输入,结果发现,这控件居然不能检验Re-type Password为空的情况。就是说,用户注册的时候,只要输入一次Password,在重新输入Password这个里面啥都不填,CompareValidator居然认为是合法输入!!!!

难道一定要为重输入Password的Textbox加一个RequiredFieldValidator?
------解决方案--------------------
没人吗?自己顶。

看的网上的sample都是只有一个CompareValidator来验证Password的,难道还有其它窍门?
------解决方案--------------------
CompareValidator 一样是用来验证两次输入的内容是否相同,比如你在注册的时候要求重复输入密码,防止用户输错密码,这时候用这个控件就可以验证两次输入的密码是否一致。


你这里是不是还有属性没有设置,Enabled 设置为true,
还要设置ControlToCompare和ControlToValidate属性。

------解决方案--------------------
属性设置都是没有问题的。
ControlToCompare设置为Password控件ID
ControlToValidate设置为Re-typed Password控件ID
Enabled默认为true(这个属性应该是用于这个控件是否可以的吧)

<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="tbPasswordCU"
ControlToValidate="tbPassword2CU" ErrorMessage="Passwords do not match!" 
ValidationGroup="CreateUserInfo"></asp:CompareValidator>

现在的问题是,如果tbPassword2CU控件没有任何输入,CompareValidator居然验证通过。这是不是微软的bug呀?
------解决方案--------------------

难道你的密码不需要用RegularExpressionValidator验证一下吗?

如果要验证的话加一个RegularExpressionValidator控件就不会出现你那种情况了
------解决方案--------------------
第一个Password是需要RegularExpressionValidator的,第二个Re-type Password只要跟第一个compare一下就好了啊。
------解决方案--------------------
我也遇到这个情况了,输入两个不一样的密码,就正常验证,而验证框里不输入,为空的时候,就不起作用了,竟然能提交,楼主这个问题解决了没有?
------解决方案--------------------
属性Operator:NotEqual
------解决方案--------------------
一个比较笨的办法就是再添加一个requiredFieldValidator控件,两个一起用就能达到预想效果,不过确实麻烦了点