当切换只读或禁用属性时,附加文本在textarea中不显示

时间:2014-10-29 03:23:44

标签: jquery append textarea readonly-attribute

我有一个textarea,我想要被禁用或只读。我使用我网站上的按钮将文本附加到该textarea以记笔记。不允许编辑的目的是不会有任何人意外更改任何笔记。

现在,如果有人确实需要更改他们已经提交的注释,我希望他/她能够编辑textarea并重新锁定它以进行编辑。

HTML:

<p><a id="append">Append</a> | <a id="lock">Lock</a> or <a id="unlock">Unlock</a></p>
<p><textarea id="notes" readonly="true" rows=10></textarea></p>

jQuery的:

$("a#append").click(function() {
    $("textarea#notes").append("- This is a note.\n");
});
$("a#unlock").click(function() {
    $("textarea#notes").removeAttr("readonly");
});
$("a#lock").click(function() {
    $("textarea#notes").attr("readonly", "readonly");
});

http://jsfiddle.net/ljpaul/bakcwtaf/

问题:当重新锁定textarea时(使用readonly或disabled属性),当我点击添加另一个音符时它不显示。奇怪的是,它确实出现在HTML代码中,它只是不显示。有没有人有任何建议来解决这个问题/使其有效?我觉得我已经尝试了几乎所有属性组合和设置所述属性的方法!

编辑:用户可以解锁该字段,以便对笔记进行编辑或删除笔记。因此,当解锁并对内容进行任何类型的编辑时,就会出现问题。

1 个答案:

答案 0 :(得分:0)

看起来所有这一切都远离了.append()函数。

$("textarea#notes").val($("textarea#notes").val() + "- This is a note.\n");

这就是技巧并允许编辑。我认为它可能与针对HTML结构的追加而不是编辑实际值有关。真的很奇怪。