我有这个功能,其中#text_comment是textarea的ID:
$('#text_comment').live('keypress',function (e) {
if(e.keyCode == 13) {
textbox = $(this);
text_value = $(textbox).val();
if(text_value.length > 0) {
$(this).prev().append('<div id="user_commenst">'+text_value+'</div>');
$(textbox).val("");
}
}
});
正在发生的事情是当输入/返回键被击中时(keyCode 13)文本正在附加,但是它也将文本向下移动一行,因为输入/返回键应该是。
即使我将文本框的值设置为“”,也会发生这种情况。
答案 0 :(得分:4)
答案 1 :(得分:2)
输入if(e.keyCode == 13)
案例时,请尝试并停止您的事件传播(请参阅http://snipplr.com/view/19684/stop-event-propagations/)。
答案 2 :(得分:2)
试试这个event.stopImmediatePropagation()
$('#text_comment').live('keypress',function (e) {
if(e.keyCode == 13) {
e.stopImmediatePropagation()
///rest of your code
}
});
答案 3 :(得分:2)
我已经对此进行了测试,这是有效的。输入不会创建新行。
$('#text_comment').live('keypress',function (e) {
if(e.keyCode == 13) {
textbox = $(this);
text_value = $(textbox).val();
if(text_value.length > 0) {
$(this).prev().append('<div id="user_commenst">'+text_value+'</div>');
$(textbox).val("");
}
return false;
}
});
虽然我想知道,如果你不想换新行,你为什么要使用textarea,为什么不使用输入类型='text'呢?
答案 4 :(得分:1)