<textarea>将发送哪个值以及为什么?</textarea>

时间:2009-12-11 04:08:31

标签: javascript html editor textarea

<form>
<textarea name="test" value="no">
hi
</textarea>
<input type="submit" />
</form>

嗨或不,是因为?

我问这个问题,因为我看到javascript编辑器在提交时使用textarea.value = html;来恢复内容,为什么他们这样做,如果value属性没用?

4 个答案:

答案 0 :(得分:18)

hi将被提交。 value标记没有<textarea>属性。有关详细信息,请参阅W3School's textarea tag reference

要回答您为何看到javascript库访问textarea DOM元素的value属性的问题,您必须明白javascript访问的HTML和DOM(文档对象模型)是2种不同的动物。在HTML中,<textarea>的值是其内容。在DOM中,textarea节点的值包含在其value属性中。虽然DOM属性名称通常将1:1映射到HTML属性名称,但它们并不总是如此,这只是一个示例。

答案 1 :(得分:3)

在POST回复中,textarea会回复innerHTML的内容。但是,如果您已将值属性设置为textarea并尝试在JavaScript中获取textarea.value,则会收到value属性的内容。

浏览器不应在物理value中显示textarea的{​​{1}}属性,因为它不是标准的。 textarea代码与textarea代码的运作方式不同。我认为这样做是因为input标记不支持换行符。

用户更改的值将是input值(jQuery中的innerHTML),而不是html属性,就像它们使用value字段一样。

答案 2 :(得分:2)

其他几点 -

支持javascript的所有浏览器都会返回textarea.value的读/写值, 与输入元素一致。但是你不能将 getAttribute ('value')或 setAttribute ('value')与textarea一起使用。

您也可以阅读textarea的'type'属性,但type也不是属性。

如果设置了value属性, textarea.value = string; **它是等效的 ** textarea.appendChild(document.createTextNode(字符串)) -

textarea不能包含任何其他元素,只能包含文本节点。

textarea中从text设置的文本将是字符串中的文字字符, 设置innerHTML属性将转义任何实体并最小化空格。

答案 3 :(得分:0)

textarea的值是它的内容。 'value'属性对此标记没有标准含义,因此表单或JavaScript将从textarea获得'hi'。这是JavaScript中的演示。

<form> 
 <textarea name="test" value="no" id='ff'>
  hi
 </textarea>
<input type="submit" />
</form>
<br>
<a onclick='showVal("ff")'>Show Value</a>
<script>
 function showVal(id){
   var snib=document.getElementById(id);
   alert(snib.value);
   }
</script>