我有一个文本框,用户可以在其中输入帐户代码。文本框具有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
?
答案 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);
}
}