javascript - 如何使用 javascript 访问文本区域的值?

标签 javascript textarea

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

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 次了。对于这个毫无意义的问题,我深表歉意。

最佳答案

这是我对您的代码中实际发生的情况以及为什么您可能会被 variable hoisting 搞砸的最佳猜测

我想您正在尝试动态添加文本区域,然后使用 var test = document.getElementById("test"); 立即获取引用。因为variable hoisting ,声明的变量提升到当前作用域的顶部。这将导致声明在添加文本区域之前发生。

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

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

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

getElementsByName :

Returns a list of elements with a given name in the HTML document.

getElementById :

Returns a reference to the element by its ID.

关于javascript - 如何使用 javascript 访问文本区域的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16027302/

相关文章:

javascript - 使用 Tipsy 和 d3.js 的附加工具提示文本

javascript - 如何在 Protractor 中使用/分离枚举、常量和定位器

jquery - 如何将选定的文本换行到文本区域中?

css - Zurb Foundation 6 - 更改焦点上的文本区域背景

css - 如何使用 React 动态调整 textarea 高度?

javascript - div onclick 仅在可视区域

javascript - 如何更改另一个组件属性的值? ( Angular 2)

javascript - 在 Node.js 中使用 htmlparser2 选择 html Node 的文本内容

javascript - ? 1.0 : 0. 0 - 这是什么意思?

javascript - 如何在 iframe 元素内滚动 textarea 元素