如果用户更改textarea中的文本,JavaScript函数将失败

时间:2014-02-12 12:16:04

标签: javascript

我有一个按钮,将带有日期的html标记插入到从数据库查询中填充的textarea中。如果按下按钮而不更改文本它可以正常工作,但如果用户要更改文本区域中的文本然后按下按钮,则不会插入代码。我不明白为什么。这是按下按钮时触发的功能:

function addtxt(input) {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
var obj=document.getElementById(input);
today = mm+'/'+dd+'/'+yyyy;
var txt=document.createTextNode(" <font color=\"#FF0000\">UPDATE " +today+ ": </font>");
obj.appendChild(txt);

调用此功能的按钮:

<input onclick="addtxt('textarea1')" type="button" value="Insert Update Text" id="button1">

感谢您提供给我的任何帮助!

2 个答案:

答案 0 :(得分:1)

如果您更改代码中的最后一行

obj.appendChild(txt);

obj.value = obj.value + txt.data;

它应该有用。这是一个DEMO

答案 1 :(得分:0)

如果在textarea中输入内容之前单击按钮,则您创建的txt文本节点将附加到该textarea元素,而today将替换为实际日期,但是html标签将保持不变。为什么?我想也许textarea旨在只显示文本。如果在输入内容后单击按钮,即使清除了textarea,addtxt功能也不会起作用。为什么?好吧,如果你使用Chrome的开发者工具查看源代码,你会发现原因。

以下是在线演示:http://jsbin.com/litov/1/

首先在该textarea中输入内容,然后清除它。之后,addtxt函数不起作用。你只需点击它。

其次,打开Chrome的开发者工具,检查textarea元素,您会发现实际附加的文本节点。