JavaScript中textarea元素的值获取方法?

新手上路,请多包涵

<body>
<textarea id="text" name="" id="" cols="30" rows="10"></textarea>
<button id="btn">提交</button>
<script>

var text = document.getElementById("text"),
    btn=  document.getElementById("btn");
btn.onclick = function () {
  // var info = text.value;//方法一
  var info = text.innerHTML;//方法二
  console.log(info);
}
</script>

</body>
使用方法2不生效,是空值(纯空白,不是null),现版本innerHTML不能用吗

有没有大佬知道,新手刚上路

阅读 228
2 个回答

文档约定表单控件类的取值是.value
具有内部 HTML 内容的 DOM 元素,例如 <div>、<span>、<td>、<th> 等,都适用于 innerHTML 属性。


textarea你可以理解为是webkit实现的 Web Components组件,你对他使用.innerHTML进行获取不生效,是因为他内部使用的是 Shadow DOM,即使你进行了赋值,审查元素也可以看到加上去了,但是页面是不会显示的,因为内部有自己的DOM实现逻辑。至于.value 还是.xxx 你在Web Components内部都可以自己定义。
image.png

当你看完这个教程和这个源码,或许你就可以理解了

innerHTML拿的是标签开始和结尾中间的内容,比如<div>这里才是取的内容</div>
textarea是闭合标签,没有这些东西

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏