我遇到了仅针对谷歌Chrome浏览器发生的这一特殊问题。
对于任何具有必填字段验证器的文本框,如果我输入一些值并从中选项卡,它可以正常工作。
但是,如果删除了值(内容被完全删除)并从文本框中删除,或者单击另一个文本框,则第一次焦点仍保留在文本框中。
我该如何解决这个问题?它适用于所有其他浏览器。
文本框的示例如下: -
<asp:Label ID="Label6" runat="server" AssociatedControlID="SwiftCode" meta:resourcekey="SwiftCodeLabel"/><span class="required">*</span>
<asp:TextBox id="SwiftCode" runat="server" CssClass="field-input account-detail"/>
<asp:RequiredFieldValidator runat="server" EnableClientScript="True" ValidationGroup="BankDetails" ControlToValidate="SwiftCode" ID="SwiftCodeValidator" SetFocusOnError="True" meta:resourcekey="SwiftOrRoutingValidator" CssClass="validation-always-hide" />
<asp:CustomValidator runat="server" ValidationGroup="BankDetails" EnableClientScript="True" ControlToValidate="SwiftCode" ID="SwiftCodeCustomValidator" ClientValidationFunction="bankAccount.isSwiftCodeValid" SetFocusOnError="True" meta:resourcekey="SwiftCodeCustomValidator" CssClass="validation-always-hide" />
<span class="hint bank-details-hint"><a href="https://news.customhouse.com/faq/spp/?q=53" target="_blank"><%=GetLocalResourceString("SWIFTBIC")%></a> <%=GetLocalResourceString("SWIFTBICHint")%></span>
现在bankAccount.isSwiftCodeValid是一个简单的jQuery函数,如下所示: -
function isSwiftCodeValid(source, args) {
var isAlphaNumeric = /^[a-z0-9]+$/i;
args.IsValid = (args.Value.length === 8 || args.Value.length === 11) && isAlphaNumeric.exec(args.Value);
}