我正在使用jQuery,并想知道是否应该使用val()或text()(或其他方法)来读取和更新textarea的内容。val()与textarea的文本()
我已经尝试过两种方法,而且我遇到了问题。当我使用text()更新textarea时,换行符(\ n)不起作用。当我使用val()来检索textarea内容时,如果文本太长,文本会被截断。
我正在使用jQuery,并想知道是否应该使用val()或text()(或其他方法)来读取和更新textarea的内容。val()与textarea的文本()
我已经尝试过两种方法,而且我遇到了问题。当我使用text()更新textarea时,换行符(\ n)不起作用。当我使用val()来检索textarea内容时,如果文本太长,文本会被截断。
设置/获取文本区域值的最佳方法是.val()
,.value
方法。
.text()
在内部使用.textContent
(或.innerText
for IE)方法来获取<textarea>
的内容。下面的测试案例说明如何text()
和.val()
之间的相互关系:
var t = '<textarea>';
console.log($(t).text('test').val()); // Prints test
console.log($(t).val('too').text('test').val()); // Prints too
console.log($(t).val('too').text()); // Prints nothing
console.log($(t).text('test').val('too').val()); // Prints too
console.log($(t).text('test').val('too').text()); // Prints test
的value
财产,通过.val()
使用始终显示当前可见的价值,而text()
的返回值可以是错误的。
thx,现在就试试这个。我目前无法复制我用val()和截断的问题。也许我得到了错误的嫌疑...... – Christophe 2012-01-13 21:23:28
感谢一堆例子。显然这是我的问题,我用text()编写并用val()读取。 – Christophe 2012-01-14 03:02:00
使用'text()'改变textarea的值在手动改变任何东西之后不再起作用(例如添加一个字符) – Jan 2017-07-03 15:37:39
通过属性名称而不是id选择<textarea>
。
<textarea id="message" name="message"></textarea>
<script>
jQuery("textarea[name='message']").val();
</script>
这是怎么得到的吗?这与问题完全无关,并且绝对没有价值。这也是一个糟糕的指导,因为在选择器中使用ID效率更高,并且不会选择具有相同名称的多个textareas。 – michael 2016-06-24 20:01:22
.val()
总是适用于textarea
元素。
.text()
工作有时会失败其他时间!这是不可靠的(在Chrome 33测试)
最好的是,.val()
也可以无缝地与其他表单元素(如input
),而.text()
失败。
您是否尝试过html()? – Znarkus 2012-01-13 16:59:31
这是什么意思换行符不起作用? – kaz 2012-01-13 17:00:16
@Znarkus:不... – Christophe 2012-01-13 17:01:34