我有一个HTML文件,当用户单击表单元格时,我会在其中创建一个文本区域。基本上,它是一个使用表创建的数据网格,当用户单击其中一个时,它会删除单元格中的文本,并将其替换为文本区域。下面是我在表的onClick处理程序中使用的代码。
summaryTableElement.innerHTML = "<textarea id='summaryTextBox' value='TestString' onclick='doNothing(this.id)'> </textarea> <input type='button' onclick='saveSummary()' value='Save' /> "
这一切都很好,它完美地创建了一个文本区域。当用户点击文本区域修改数据时,它会出错。在这种情况下,文本区域的单击事件处理程序永远不会触发。相反,该表接收单击事件,从而创建另一个文本区域。无论用户做什么,文本区域都不会接收到任何事件。
现在,我不知道该在这里做什么。
编辑:
我又查了一遍。事实证明,它正在启动子级的click事件处理程序。但是,事件也正在传播到父元素。
编辑:
我尝试在家长的点击事件处理程序中添加以下条件
if (id.toString() == "SummaryData")
但即使对于子元素也是如此。
使用指示单击一次的标志。如果它已经被点击,那么不要运行该函数。现在是文本区域的问题。在动态创建的html代码中,在onclick的后面添加一个onfocus
事件处理程序。此外,对于动态添加的所有文本区域,"id"不能相同。使用类似"id='xyz"+i+"'"
的内容,其中"i"表示一个计数,该计数是要添加的文本区域的数量。