我遇到的問題是我有一個窗體(asp.net窗體)和一些字段(其中大部分)都有RequiredFieldValidator。現在,我還在所有這些設置上設置了SetFocusOnError =「true」,它對所有的下拉菜單都能正常工作。讓我定義好:點擊提交按鈕時,其中一個字段留空,瀏覽器向上滾動到空字段。在下拉的情況下,錯誤消息的確顯示在字段旁邊,但瀏覽器不會將屏幕向上滾動到該字段。到目前爲止,我已經閱讀了關於堆棧溢出的類似問題,他們都來「爲此使用JavaScript」,但我的問題是我想爲此使用asp.net屬性。如果它在那裏它應該工作,對吧?除非我做錯了。這裏談到的工作領域之一代碼:SetFocusOnError無法正常工作
<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="^[^\[email protected]][email protected][^\[email protected]]+$" 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>
是我的代碼錯了還是我期待從它的錯誤的事情嗎?
嗨,恐怕它不會改變任何東西仍然會顯示驗證工作和錯誤消息,但我必須滾動到d ropdowns看到他們... – Lucas
好吧,它應該工作....我剛剛測試,並在鉻,瀏覽器自動設置焦點下降,我不需要滾動 –
你使用標準的HTML