简体   繁体   English

TextArea返回错误的值

[英]TextArea returns wrong value

I have some TextAreas 我有一些TextAreas

<textarea>Default Value</textarea>
<textarea>Default Value</textarea>

The user enters some text and I want to get their NEW values in JavaScript: 用户输入一些文本,我想在JavaScript中获取其新值:

$('textarea').each(function(index, item) {
    alert(item.value);
});

It sounds simple, but all I get is "Default Value". 听起来很简单,但我得到的只是“默认值”。

I've tried: 我试过了:

item.nodeValue, 
item.textContent, 
item.innerHTML. item.innerText, 
item.value, 
$(item).val() in jQuery

I'm always getting "Default Value". 我总是得到“默认值”。 Though firebug even shows the new value in HtmlTextAreaElement => value. 尽管Firebug甚至在HtmlTextAreaElement => value中显示了新值。 That should be item.value , right? 那应该是item.value ,对吧? I feel stupid, please help me. 我觉得很蠢,请帮帮我。

in textarea it's not item.value, it's innerHTML 在textarea中,它不是item.value,而是innerHTML

jquery's val() works though jQuery的val()虽然工作

<input type="text" value="some text" />
<textarea id="something" name="something">some text</textarea>

you can do: 你可以做:

$('textarea').each(function(index, item){
    console.log($(item).val());
});

Give your textareas a "name" attribute 给您的textareas一个“名称”属性

<textarea name="name">innterHTML</textarea>

and use 和使用

item.innerHTML item.innerHTML

as suggested, for textarea it is innerHTML, not value :) 如所建议的,对于textarea,它是innerHTML,而不是值:)

The user enters some text and I want to get their NEW values in JavaScript: 用户输入一些文本,我想在JavaScript中获取其新值:

This should do it: 应该这样做:

$('textarea').keyup(function(){
   alert(this.value);
});

To read already entered value (not when user types it), use: 要读取已经输入的值 (而不是在用户键入值时),请使用:

$('textarea').each(function(index, item) {
    alert(this.value);
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM