验证可编辑内容,可在输入时单击而不是单击

时间:2019-03-06 15:32:00

标签: javascript jquery html

我正在使用contenteditable,以便人们可以编辑文本。 因此,当您编辑文本thas具有contenteditable = true时,如果单击页面中的其他位置,它将“验证”您的文本并替换旧文本。 那不是我想要的东西,因为除了刷新页面之外,用户没有其他方法可以返回到较早的文本。

对我来说,只有在按下Enter键时才应验证文本,而在其他地方单击时则不应验证文本。如果您单击其他位置,则应该回到较早的文本。

任何想法怎么做? 谢谢 ! :)

1 个答案:

答案 0 :(得分:0)

当用户单击该框时,可以将其值存储到var中,当他们单击时,将框重置为该var

如果Enter键尚未通过验证,则以下是有关您可以执行的操作的伪代码:

var oldvalue = "";
function OnClickBox() {
    oldvalue = (yourelement).value;
}

function OnClickAway() {
    (yourelement).value = oldvalue;
}

function Validate() {
    (yourelement).value = yourvalidationfunction(yourelement.value);
}

document.onkeydown = function (e) {
    key = e.which || e.KeyCode;

    if (e.keyCode === 16) { //enter key
        Validate();
    }
}

然后,将框的onclick分配给OnClickBox(),然后取消选择框到OnClickAway()

对于以后的帖子,请提供一些代码,说明您已经尝试过的内容,以便更好地了解您的问题。