简体   繁体   中英

TextArea returns wrong value

I have some TextAreas

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

The user enters some text and I want to get their NEW values in 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. That should be item.value , right? I feel stupid, please help me.

in textarea it's not item.value, it's innerHTML

jquery's val() works though

<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

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

and use

item.innerHTML

as suggested, for textarea it is innerHTML, not value :)

The user enters some text and I want to get their NEW values in 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);
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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