与使用必需验证程序时文本框中丢失焦点相关的问题

本文关键字:焦点 问题 文本 验证 程序 | 更新日期: 2023-09-27 18:35:47

我有一个 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>

当我专注于用户名文本框并按 Tab 时,由于必需字段验证器,我无法从文本框中丢失焦点。 它只发生在 铬和IE9 . 但在火狐中运行良好。

使用必填字段验证器时,从文本框中失去焦点的解决方案是什么???

谢谢

与使用必需验证程序时文本框中丢失焦点相关的问题

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

唯一的缺点是,您只能在表单回发时验证表单,而不能即时验证表单。
但是,这甚至不是脖子上的痛苦,因为即使您删除此属性,验证在普通 Web 窗体和 ajax 更新面板中都可以正常工作。

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