我正在使用contenteditable,以便人们可以编辑文本。 因此,当您编辑文本thas具有contenteditable = true时,如果单击页面中的其他位置,它将“验证”您的文本并替换旧文本。 那不是我想要的东西,因为除了刷新页面之外,用户没有其他方法可以返回到较早的文本。
对我来说,只有在按下Enter键时才应验证文本,而在其他地方单击时则不应验证文本。如果您单击其他位置,则应该回到较早的文本。
任何想法怎么做? 谢谢 ! :)
答案 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()
。
对于以后的帖子,请提供一些代码,说明您已经尝试过的内容,以便更好地了解您的问题。