具有InitialValue属性的ASP.Net RequiredFieldValidator错误?

时间:2012-06-13 08:03:03

标签: c# asp.net validation

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

<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”

现在,如果我删除文字 lol ,则忽略验证

为什么?

2 个答案:

答案 0 :(得分:5)

仔细查看MSDN描述:

  

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

     

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

我认为它说明了一切。

答案 1 :(得分:0)

如果使用Visual Studio,则可以看到“Solution Explorer / References / System”。

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

您可以进行四项测试。

没有。 TextBox InitialValue Igonored
1 lol lol是
2大声笑“”没有
3“”大声笑没有
4“”“”是的

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