我刚发现这种奇怪的行为,这是一个错误还是我错过了什么?
<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 ,则忽略验证
为什么?
答案 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的值。