在一个javascript函数中,我基于从另一个站点获取的一些JSON数据创建了一个textarea。 我在这里创建文本区域:

if(type == 'fill-in'){
    var textField = $('<center><div id="response-text"><textarea id="test" name="test" rows="10" cols="80">Answer here</textarea></div></center>').appendTo(panel.root);                        
}

在另一个功能中,我需要获取此文本字段的值并将其发送到另一个站点。 我已经使用各种方式尝试过

document.getElementById("test").value

但这给了我一个错误,如果我使用

document.getElementByName("test").value

它告诉我该值是不确定的。 文本区域是否不会自动将其值设置为您在其中键入的内容? 有没有更好的方法来抓取正在文本区域中键入的内容?

编辑:

getElementById现在正在工作...不确定我以前在做什么,但我必须尝试3-4次。 对于这个毫无意义的问题,我深表歉意。

===============>>#1 票数:1 已采纳

关于代码中实际发生的事情以及为什么变量吊装可能会给您带来麻烦,这是我的最佳猜测

我想您正在尝试动态添加文本区域,然后通过使用var test = document.getElementById("test");来获取引用var test = document.getElementById("test"); 由于变量吊起 ,已声明的变量吊起在当前作用域的顶部 这将导致声明添加文本区域之前发生。

由于不清楚问题出在哪里,OP确实引起了我的注意,您使用的getElementsByName不正确。

getElementByName应该是getElementsByName 细微但明显的差异。 由于名称不必唯一,因此该函数将收集具有给定name属性的所有DOM元素的节点列表。

另一方面, getElementById返回对元素本身的引用。

getElementsByName

返回HTML文档中具有给定名称的元素列表。

getElementById

通过其ID返回对该元素的引用。

===============>>#2 票数:1

使用getElementById可以正常工作。 您的HTML标记必须有问题-可能是另一个idtest元素。

工作提琴:

===============>>#3 票数:1

我假设Teaxarea元素已成功加载并存在于DOM中。 在这种情况下,甚至在Textarea元素在DOM中加载并准备就绪之前,您的JavaScript仍在加载和执行。

问候,

  ask by Hoser translate from so

未解决问题?本站智能推荐: