jQuery的:
$(document).on("keypress", ".admin-msg-box textarea", function (e) {
if (e.keyCode == 13) {
var msg = $(this).val();
var c_id = $(this).closest('.msg_box').find('.msg_head').data('c_id');
if ($.trim(msg).length !== 0) {
saveAdminMsg(c_id,msg);
$('<div class="msg_a temp_msg">' + msg + '</div>').insertBefore('.msg_push');
$('.msg_body').scrollTop($('.msg_body')[0].scrollHeight);
}
}
});
按ENTER后应清除textarea。但它包含旧文本,如果我再次按ENTER键,它会再次附加旧文本。应该提到textarea是动态创建的。
答案 0 :(得分:1)
您只是错过了重置textarea
和msg
变量的信息:
$(this).val("");
msg = "";
请查看以下示例:
$("#appendHere").append('<div class="admin-msg-box"><textarea></textarea></div>');
$(document).on("keypress", ".admin-msg-box textarea", function (e) {
if (e.keyCode == 13)
{
e.preventDefault();
var msg = $(this).val();
//var c_id = $(this).closest('.msg_box').find('.msg_head').data('c_id');
if ($.trim(msg).length !== 0)
{
//saveAdminMsg(c_id,msg);
//$('<div class="msg_a temp_msg">' + msg + '</div>').insertBefore('.msg_push');
//$('.msg_body').scrollTop($('.msg_body')[0].scrollHeight);
alert(msg);
}
$(this).val("");
msg = "";
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="appendHere"></div>
除了这个答案:
我已添加e.preventDefault();
,因此当您按Enter键时,它不会向textarea
添加新行。