JQuery textarea值为空

时间:2013-01-30 22:24:18

标签: jquery

这类问题往往会立即遭到否定投票。如果您有答案,请帮忙!感谢。

我有一个脚本,可以在dom中添加一个textarea。当我输入数据并稍后尝试检索它时,该值返回空。

这成功设置了textarea的值:

$("textarea").each(function(){
    $(this).val("ASDFASDF");
});

这成功设置了textarea的css后台属性:

$("textarea").each(function(){
    $(this).css({"border":"2px solid red"});
});

但这不会返回值:

$("textarea").each(function(){
    alert($(this).val());
});

我尝试过.text(),. html(),. value - 它们都没有返回任何内容!它不会警告“undefined”或null,而只是一个空值。

我无法弄清楚原因。

提前感谢您的建议。

更多信息

HTML是:

<textarea id="Bio" rows="4"></textarea>

JQuery Library: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

加载dom后,按钮会触发功能。

这里是代码的简化版本: http://social-gamer.com/textarea.html

3 个答案:

答案 0 :(得分:4)

它确实有效,还有其他问题。你可以see it working here

<textarea>Hello One</textarea>
<textarea>Hello One two</textarea>
<textarea>Hello One two three</textarea>

$("textarea").each(function(){
    alert($(this).val());
});
  • 您使用的是哪个版本的jQuery?
  • 您的代码是否在加载DOM之前运行?
  • 您的HTML是什么样的?您是否正在为textarea分配值属性?这不起作用,请参阅http://jsfiddle.net/2bjLJ/1/

其他笔记

当您想要在所有底层对象上调用方法时,不需要each

$("textarea").each(function(){
    $(this).val("ASDFASDF");
});

$("textarea").each(function(){
    $(this).css({"border":"2px solid red"});
});

它可以是

$("textarea").val("ASDFASDF");
$("textarea").css({"border":"2px solid red"});

然而,在阅读它时,你必须调用每个,否则你将从jQuery集合中的第一个对象获取值

Working Example

答案 1 :(得分:4)

问题最终成为重复的ID。通常我会先检查这个但是我甚至没有通过它的ID访问元素,而只是输入类型“textarea”。

因此,即使按类定位元素或仅仅根据它在DOM中的位置,如果它具有重复的ID,它也将失败。我之前并没有真正考虑过这个问题,因为我没有通过ID获得这个想法!

答案 2 :(得分:-1)

你好吗,

听一下,TextArea是唯一一个没有得到的输入,并用val()设置值,因为当你把值放在textarea上时,你就把它放在标签里面。

有一个例子

<textarea>Inside is the content so to 
get the content inside of tags you use HTML or TEXT</textarea>

因此,当您尝试获取数据时,您必须执行此操作:

$('textarea').text();

用于设置textarea的数据:

$('textarea').text("HERE'S THE CONTENT.");

这是一个小提琴,你可以看到我所说的一切

http://jsfiddle.net/nfTVJ/

祝你好运,再见