onblur 失败时不应触发 onclick

Onclick should not fire when onblur fails

我有一个包含多个行和列的 HTML table。 我有帐单编号、帐单日期、说明、金额等列。 在 Bill date 列中,我定义了 onclick 和 onblur 事件。 onclick - 显示一个日历,用户可以选择一个日期。 onblur - 将验证日期是否在一段时间内等等。

现在,让我们假设有 4 行。 我单击第 4 行的日期列。出现日历。我select约会。 现在,我单击第 3 行的日期列。出现日历。同时第 4 行的 onblur 执行和 returns 一条错误消息。现在我的系统变得混乱了。我想在第 4 行验证失败时,第 3 行的 onclick 不应触发,我的光标本身仍应位于第 4 行。

可以吗,还是我问的太多了?任何帮助将不胜感激。 谢谢

一种可能是您保留一个全局变量作为标志,并使用它的值来跟踪您输入的状态。

见下文:

var bInEditMode = false;

function onclickevent() {
    if ( bInEditMode ) return;

    bInEditMode = true;
    // TODO: call your calendar code
}

function onblurevent() {
    // TODO: call your testing code
    bInEditMode = false;
}