保存html会丢失文本区域内的值

时间:2015-03-11 17:50:35

标签: jquery

我在一些td内有一个输入和textareas的表。加载页面时,这些输入和textareas为空。然后我在输入和textareas中输入文本。然后我将此页面保存到sql数据库。然后,我可以在需要时加载此表。当页面加载时,我粗略需要所有文本"值"在所有输入和textareas中加载。

我在函数中使用它来保留所有输入值。

$("input").each(function(){
    $(this).attr("value", $(this).val());
});

工作正常。但是当试图将它应用于textarea时,如下所示,没有运气。

$("textarea").each(function(){
    $(this).attr("value", $(this).val());
});

当我加载保存的html时,我的文本区域为空,但值=""虽然拿了文字。例如,当我加载一个空表时,textarea看起来像这样。

<textarea value="" type="text"></textarea>

我输入&#34;你好&#34;在textarea中,保存了我的html,加载时我最终得到了这个

<textarea value="hello" type="text"></textarea>

但实际的textarea是空的。

任何想法?

2 个答案:

答案 0 :(得分:2)

因为textareainput不同,而且textarea本身的文字不在属性中。

因此,要更改/设置textarea内容,您需要使用$('textarea').val('hello');$.each()然后$(this).val('hello');

  

不确定我明白我应该在那里做什么? - Adrien Boufflet 1   小时前

我不知道您应用value textarea的方式/时间,但是当您这样做时,应该使用.val('some text')代替.attr('value', 'some text')

我希望这能更好地解释它。

答案 1 :(得分:0)

这解决了我的问题。

$("textarea").each(function(){
    $(this).attr("value", $(this).text(this.value));
});

获得.val()而不是.text()