我遇到的问题是我有一个表单(asp.net表单)和一些字段(大多数)都有RequiredFieldValidator。现在我还在所有这些上设置了SetFocusOnError =“true”,它适用于除下拉列表之外的所有内容。让我定义好:在其中一个字段留空后单击“提交”按钮后,浏览器会向上滚动到空白字段。在下拉列表的情况下,错误消息确实在字段旁边正确显示,但浏览器不会向上滚动屏幕到字段。到目前为止,我已经阅读了关于堆栈溢出的类似问题,他们都“为此使用JavaScript”,但我的问题是我想使用asp.net属性。如果它在那里它应该工作,对吧?除非我做错了。以下是其中一个工作字段的代码:
<div class ="row">
<div class="three columns medium" align="right">
<label>Email *</label>
</div>
<div class="three columns large">
<asp:TextBox ID="Email" runat="server"></asp:TextBox>
</div>
<div class="six columns large">
<asp:RequiredFieldValidator ID="EmailRequired" ControlToValidate="Email"
ErrorMessage="Please provide us your email address" forecolor="Red" SetFocusOnError="true" runat="server" /><br />
<asp:RegularExpressionValidator ID="EmailFormat" ControlToValidate="Email"
ErrorMessage="Please provide us valid e-mail address" ValidationExpression="^[^\s@]+@[^\s@]+$" forecolor="Red" runat="server" />
</div>
</div>
这是一个不工作焦点的样本:
<div class ="three columns medium" align="right">
<asp:DropDownList class="dropdown expand" ID="Location" runat="server">
<asp:ListItem
Enabled="True"
Text="Please choose the office location... *"
Value=""
/>
<asp:ListItem
Enabled="True"
Text="City1"
Value="City1"
/>
<asp:ListItem
Enabled="True"
Text="City2"
Value="City2"
/>
<asp:ListItem
Enabled="True"
Text="City3"
Value="City3"
/>
</asp:DropDownList>
</div>
<div class ="six columns large">
<asp:RequiredFieldValidator ID="LocationRequired" ControlToValidate="Location"
ErrorMessage="Please select the office location" forecolor="Red" SetFocusOnError="true" runat="server" />
</div>
<div class ="three columns large"></div>
我的代码是错的还是我期待它的错误?
答案 0 :(得分:0)
设置此中涉及的每个控件的ValidationGroup属性,例如下拉列表,按钮,必填字段验证器等
ValidationGroup="Selection
“
答案 1 :(得分:0)
我担心像jqTransform这样的第三方脚本在asp.net脚本中破坏了一些设置焦点在错误控件上的东西。尝试删除第三方脚本并检查。如果它们是原因那么你需要用java脚本发明一些东西