【问题标题】:ASP.NET required field validator firing on focus in firefoxASP.NET 所需的字段验证器在 Firefox 中触发焦点
【发布时间】:2010-05-20 15:54:08
【问题描述】:

我在更新面板中有 2 个 asp.net 文本框。两个文本框控件都有一些 javascript 附加到 autotab 到下一个字段,并且只允许数字输入。当我在第一个字段中输入一些数据并按 Enter 键时,焦点转移到下一个字段并且第二个字段的 requiredfieldvalidator 显示其“* required”错误消息,即使我刚刚输入了该字段。当我第一次输入文本框时,如何防止验证器触发?

我还应该提到两个文本框都在 gridview 页脚中。

代码如下:

<asp:TextBox ID="add_ISBN" runat="server" Columns="14" MaxLength="17" CssClass="focus" />
<asp:TextBox ID="add_Qty" runat="server" Columns="4" MaxLength="4" />
<asp:RequiredFieldValidator ID="rfvQty" ControlToValidate="add_Qty" ErrorMessage="* required" ForeColor="Red" Display="Dynamic" EnableClientScript="true" ValidationGroup="Add" runat="server" />

在代码隐藏中:

 add_ISBN.Attributes.Add("onkeydown", "return isbnCheck(event, '" & add_Qty.ClientID & "')") 

还有 javascript:

function isbnCheck(e, id) {
    e = e || window.event;
    var key = e.which || e.keyCode

    if (validIsbnChars.indexOf(parseInt(key, 10)) >= 0) {
        return true;
    } else {
        if (key == 13) {
            var nextfield = document.getElementById(id);
            if (nextfield) nextfield.focus();
            return false;
        }
        if (e.preventDefault) e.preventDefault();
        e.returnValue = false;
        return false;
    }
}

javascript 只允许有效的字符子集,如果用户按下回车键,则将焦点设置到下一个字段。

【问题讨论】:

  • 您需要发布一些标记和脚本,以便我们为您提供帮助。

标签: asp.net firefox requiredfieldvalidator


【解决方案1】:

我不确定为什么会出现此错误,但您可能可以使用 client-side validation mini-api 创建解决方法。

在页面上找到执行document.getElementById() 的验证器元素,然后在您进入该字段时将验证器上的isvalid 标志设置为true。

或者,您可以在现场调用ValidatorEnable(validatorElement, false) 将其禁用,然后在您退出时使用ValidatorEnable(validatorElement, true) 重新启用它。

【讨论】:

  • 谢谢womp。如果事实证明没有其他办法,我可能会做这样的事情。
【解决方案2】:

我设法通过将 javascript 附加到 onKeyPress 事件而不是 onKeydown 来解决此问题。

add_ISBN.Attributes.Add("onkeydown", "return isbnCheck(event, '" & add_Qty.ClientID & "')") 

【讨论】:

    猜你喜欢
    • 2013-06-19
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多