Javascript getElementbyId工作一次但不是两次?

时间:2014-01-31 13:50:47

标签: c# javascript jquery asp.net

我正在尝试获取一个表格单元格,当我们点击它时可以变成文本框,这样我们就可以填充它,然后将文本添加到单元格中。

有我的JavaScript功能:

$(".cellConsigne").click(function () {
    var numId = this.id.substring(24);
    document.getElementById("MainContent_txtConsigne" + numId).style.display = "block";
    document.getElementById("MainContent_txtConsigne" + numId).focus();
});

$(".txtTab").focusout(function () {
    var numId = this.id.substring(23);
    document.getElementById("MainContent_cellConsigne" + numId).textContent = this.value;
    this.style.display = "none";
});

我在C#代码中声明了单元格和文本框:

TableCell cell17 = new TableCell();
cell17.ID = "cellConsigne" + i.ToString();
cell17.CssClass = "cellConsigne";

TextBox txtConsignes = new TextBox();
txtConsignes.ID = "txtConsigne" + i.ToString();
txtConsignes.CssClass = "txtTab";
txtConsignes.BackColor = row.BackColor;

cell17.Controls.Add(txtConsignes);

所以问题是这个工作很好,第一次,我点击,textBox显示并获得焦点。我将文本放入其中,然后将textBox和文本放到单元格中。 但是当我第二次点击单元格时,document.getElementById("MainContent_cellConsigne" + numId)上出现了“引用空错误”。

问题可能来自CSS类还是来自样式的修改?我真的不知道。

1 个答案:

答案 0 :(得分:1)

我发现了这个问题!

当我这样做时

document.getElementById("MainContent_cellConsigne" + numId).textContent = this.value;

它将单元格从其中的控件中清空,然后将文本添加到单元格中。所以textBox不再在单元格中了。

我只是在单元格中添加一个标签,然后将textBox中的文本添加到标签中,并且不再清空单元格。