1

無効または読み取り専用にしたいテキストエリアがあります。サイトのボタンを使用して、そのテキストエリアにテキストを追加してメモを取ります。編集を許可しない目的は、誰も誤ってメモを変更できないようにすることです。

さて、誰かがすでに送信したメモを変更する必要がある場合、テキストエリアを編集して、編集のために再度ロックできるようにしたいと思います。

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/

問題: テキストエリアを (読み取り専用または無効属性で) 再ロックすると、クリックして別のメモを追加しても表示されません。奇妙なことに、HTML コードには表示されますが、表示されません。これを修正/機能させるための提案はありますか? ほぼすべての属性の組み合わせとその属性の設定方法を試したような気がします!

編集: ユーザーはフィールドのロックを解除して、メモを編集するか、メモを削除します。したがって、ロックが解除され、コンテンツになんらかの編集を加えたときに、問題が発生します。

4

1 に答える 1

0

.append() 関数から離れるだけだったようです。

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

それはトリックを行い、編集を可能にします。実際の値を編集するのではなく、HTML 構造を対象とする追加に関係があるのではないかと思います。本当に奇妙です。

于 2014-10-29T04:02:32.947 に答える