在一个 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
另一方面返回对元素本身的引用。
Returns a list of elements with a given name in the HTML document.
Returns a reference to the element by its ID.
关于javascript - 如何使用 javascript 访问文本区域的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16027302/