如果双击文本框,停止onblur运行?

时间:2017-05-10 10:58:47

标签: javascript jquery asp.net onblur

我有一个文本框,用户可以在其中输入帐户代码。文本框具有onblur功能,可以对帐户代码进行一些验证。 文本框还有一个功能,然后用户双击文本框。这将打开一个屏幕,显示有关帐户代码的信息。

<asp:TextBox runat="server" ID="txtAccountCode" CssClass="lookup" MaxLength="8" style="text-transform:uppercase" ondblclick="OpenCust(this.value)" onblur="CheckIfAccountCodeValid(this.value)"></asp:TextBox> 

问题是,每当用户双击文本框时,它也会运行onblur。有没有办法在onblur被调用时停止运行ondblclick

2 个答案:

答案 0 :(得分:0)

您可以在OpenCust函数中删除onBlur eventlistener。

Vanilla JS中有这样的事情:

document.getElementById('txtAccountCode').removeEventListener('ondblclick', CheckIfAccountCodeValid);

答案 1 :(得分:0)

问题是浏览器触发事件​​的顺序。 在onblur之后,onmousedown之前会触发ondblclick。 为了尽可能保持最简单,我的建议是管理ondblclik内的所有内容,如下所示:

<asp:TextBox runat="server" ID="txtAccountCode" CssClass="lookup" MaxLength="8" style="text-transform:uppercase" ondblclick="OpenCustIfValid(this.value)"></asp:TextBox> 

function OpenCustIfValid(value) {
    if (CheckIfAccountCodeValid(value)) {
        OpenCust(value);
    } 
}