TextArea看起来像:
<textarea id="MessageContent" name="MessageContent"></textarea>
JQuery看起来像:
$("#insert").live("click", function () {
var t = "<img width='" + result.width + "' height='" + result.height + "' alt='" + result.descr + "' src='/Images/" + result.message + "' />";
$("#MessageContent").html($("#MessageContent").html() + t);
$("#MessageContent").focus();
$("#backgroundPopup").fadeOut("fast");
$("#popupContact").fadeOut("fast");
}); //live
我可以插入简单文本,但不能插入任何HTML标记。
答案 0 :(得分:3)
您希望在此使用.val()
代替.html()
来设置<textarea>
的值(否则该值未编码或正确使用),如下所示:
$("#insert").live("click", function () {
var t = "<img width='" + result.width + "' height='" + result.height + "' alt='" + result.descr + "' src='/Images/" + result.message + "' />";
$("#MessageContent").val($("#MessageContent").val() + t);
$("#MessageContent").focus();
$("#backgroundPopup").fadeOut("fast");
$("#popupContact").fadeOut("fast");
});
你也可以将它缩短一点by passing a function to .val()
,如下所示:
$("#insert").live("click", function () {
$("#MessageContent").val(function(i, val) {
return val + "<img width='" + result.width + "' height='" + result.height + "' alt='" + result.descr + "' src='/Images/" + result.message + "' />";
}).focus();
$("#backgroundPopup").fadeOut("fast");
$("#popupContact").fadeOut("fast");
});