这是我的ASP.NET代码。简单。它有一个与必填字段验证器和提交按钮相关联的文本框。
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="TextBox1" Display="Dynamic"
ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:Button ID="Button1" runat="server" Text="Click Me" />
执行以下操作
点击Button1
将显示RequiredFieldValidator
在TextBox中输入一些文字
使用鼠标(请勿使用标签)。然后单击按钮,您可以看到您的页面没有“POSTBACK”,只有验证被清除。你需要
再次单击“提交表单”按钮。
这似乎是微软设置属性Display =“Dynmaic”时的一个错误,并且是否有一个简单的解决方法而不改变
的预期行为 这可用吗?我无法在任何地方找到解决方案。答案 0 :(得分:6)
您的页面无法提交,因为当您想要单击按钮时,按钮会移动到鼠标下方。这是因为它获得了焦点,Validator-ErrorMessage消失在左侧。
如果您在按钮前插入<br/>
,则可以正常工作。
通常我使用*作为Text并使用ValidationSummary来显示ErrorMessage:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="TextBox1" Display="Dynamic"
ErrorMessage="This is the Errormessage" Text="*"></asp:RequiredFieldValidator>
<asp:Button ID="Button1" runat="server" Text="Submit" />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
或者,如果使用ASP.Net Ajax,您可以使用像ValidatorCalloutExtender这样的漂亮控件。