2

我刚刚发现了这种奇怪的行为,这是一个错误还是我错过了什么?

<asp:TextBox runat="server" Text="" ID="txtSomething" />
<asp:RequiredFieldValidator 
    ErrorMessage="errormessage" 
    ControlToValidate="txtSomething"
    runat="server"
    Text="(*) Required"
    SetFocusOnError="true"
    EnableClientScript="true"/>

使用这个简单的代码,验证可以正常工作,即使我写了一个充满空格的字符串

但是,如果我添加这样的InitialValue属性:

<asp:TextBox runat="server" Text="lol" ID="txtSomething" />
<asp:RequiredFieldValidator 
    ErrorMessage="errormessage" 
    ControlToValidate="txtSomething"
    runat="server"
    Text="(*) Required"
    SetFocusOnError="true"
    EnableClientScript="true"
    InitialValue="lol"/>

注意我添加了InitialValue="lol"Text="lol"

现在,如果我删除文本大声笑验证将被忽略

为什么??

4

2 回答 2

5

仔细看MSDN描述:

使用此属性指定输入控件的初始值。

仅当关联输入控件的值在失去焦点时与此 InitialValue 匹配时,验证才会失败。

我认为它不言自明。

于 2012-06-13T08:05:28.390 回答
1

如果您使用 Visual Studio,您可以看到“解决方案资源管理器/参考/系统”。

双击搜索,可以看到“RequiredFieldValidator是一个类,InitialValue是一个变量”


您可以进行四种测试。

编号 TextBox InitialValue Ignored
1 lol lol Yes
2 lol "" No
3 "" lol No
4 "" "" Yes


因为您使用 InitialValue 来比较 TextBox 的值。

于 2016-01-07T05:33:50.013 回答