如何在函数执行后禁用 Enter/Return 键?
我有这个函数,其中 #text_comment 是文本区域的 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("");
}
}
});
发生的情况是,当按下 Enter/Return 键(keyCode 13)时,文本会被附加,但它也会将文本向下移动一行,因为 Enter/返回键应该是。
即使我将文本框的值设置为“”,也会发生这种情况。
I have this function where #text_comment is the ID of a textarea:
$('#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("");
}
}
});
What is happening is the text is appending when the enter/return key is hit (keyCode 13), but it is also moving the text a line down, as the enter/return key is supposed to.
This is occurring even though I set the value of the textbox to "".
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
event.preventDefault() 怎么样?
How about event.preventDefault()
尝试停止事件传播(请参阅 http://snipplr.com/view/19684/ stop-event-propagations/) 当进入
if(e.keyCode == 13)
情况时。Try and stop your event propagation (See http://snipplr.com/view/19684/stop-event-propagations/) when entering the
if(e.keyCode == 13)
case.试试这个event.stopImmediatePropagation()
try this one event.stopImmediatePropagation()
我已经测试过这个,有效。输入不会创建新行。
虽然我想知道,如果您不想换行,为什么要使用文本区域,为什么不使用输入类型='文本'呢?
I've tested this out, this works. The enter does not create a new line.
Although I am wondering, if you don't want to ever have a new line, why are you using a textarea, why not use a input type='text' instead ?
在这里回答http://jsfiddle.net/Z9KMb/
Answer here http://jsfiddle.net/Z9KMb/