1

我有一个 asp.net Web 应用程序,我在应用程序中有登录屏幕。

在用户名和密码字段中,我使用了必填字段验证器,如下所示:

 <td style="width: 160px">
 <asp:TextBox ID="txtUserNm" runat="server" CssClass="txtSingleline txtBack-Color txtRequireBorder-Color required"                                                     Height="18px" Width="150px"  TabIndex="1" MaxLength="50" onblur="ValidatorOnChange(event);showhide();"></asp:TextBox>
 </td>
<td style="width: 140px">
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Display="Dynamic" 
Width="150px" SetFocusOnError="true" ErrorMessage="Please enter Username" ControlToValidate="txtUserNm"                                                 ValidationGroup="a"></asp:RequiredFieldValidator>

当我专注于 UserName 文本框并按 Tab 时,由于RequiredField Validator,我无法从 TextBox 失去焦点。它只发生在 Chrome 和 IE9 中。但在Firefox中运行良好。

使用Requiredfield验证器时,有什么办法可以解决文本框的焦点问题???

谢谢

4

2 回答 2

2

简单...只需删除SetFocusOnError="true"或将其设置为false.

唯一的缺点是您只能在表单回发时验证表单,而不是即时验证。
但是,这甚至不是一件让人头疼的事情,因为即使您删除了这个属性,验证在普通的 Web 表单和 ajax 更新面板中都可以正常工作。

于 2013-10-17T06:19:36.647 回答
0

我假设您应该手动为控件分配tabindex 属性,以便通过按 Tab 来定义循环。

于 2013-10-17T06:06:27.377 回答