时间:2010-07-16 10:25:03

标签: html javascript-events

我有一个HTML表格。我使用Javascript使这个表格可编辑。当用户单击一个单元格时,它将变为可编辑状态。这里的问题是,当单元格已经可编辑时,如果用户再次单击单元格....,则会出现一些标记和其他内容。每次点击都会显示新的文本框。

如何防止这种情况?

我使用以下Javascript代码。

function changeContent(tablecell)
{
    //alert(tablecell.firstChild.nodeValue);
    tablecell.innerHTML = "<INPUT type=text size=\"6\" name=newname onBlur=\"javascript:submitNewName(this);\" value=\""+tablecell.innerHTML+"\">";
    tablecell.firstChild.focus();
}
function submitNewName(textfield)
{
    //alert(textfield.value);
    textfield.parentNode.innerHTML= textfield.value;
}

1 个答案:

答案 0 :(得分:1)

如果每次点击后出现新的文本框,则代码不会处理这种情况:如果单元格已经有输入文本框,那么当用户点击时不要继续为输入文本框输入其他HTML在细胞上。

防止这种情况的一种方法是将表格单元格的类设置为类名,例如在changeContent函数末尾的“editable”。然后,如果tablecell.className不是“可编辑的”,那么您可以在同一个函数中使用代码,该函数只会放入输入文本框的HTML中。

请记住,在您的submitNewName函数中,还要在用户完成编辑后删除单元格的“可编辑”类名。