输入框在按下回车键时没有换行

3

我有一个涉及许多库的项目,例如jQueryKendoAngularJS。在进行了许多提交的更新后,textarea无法通过按下[Enter]键来换行。可能是某个事件被解除绑定或者某个库中断了它。我尝试通过JQuery.data(element)获取对象的监听器,但它返回未定义。我该如何调试它?


3
尝试复制一个最小的代码片段来重现错误,例如在http://jsfiddle.net上。 - nicolallias
除了@nicolallias所推荐的,一定要使用JSFiddle中的CDN将任何相关库添加到片段中。这样它就可以紧密地复制您自己的代码。 - Jacob Stamm
2
在Chrome中,按F12,转到“Sources”选项卡,在右侧查找“Event listener breakpoints”,然后展开“Keyboard”。愉快的调试。 - kosmos
很遗憾,我无法重现这个片段,因为有很多代码从模板生成表单和其他一些内容。这个元素上的 keypress 是一种“内部”事件吗?它可以被中断或解绑吗? - c4off
@c4off,你能提供你的代码吗?或者你可以尝试使用e.stopPropagation()和e.preventDefault()。 - Himesh Aadeshara
3个回答

4

试试这个:

$('textbox').keypress(function(e){
  e.stopPropagation();
});

这将防止用户在文本框中输入时触发任何其他绑定的事件。

3

在我的情况下,回车键和箭头键无法正常工作,按键事件也无法检测到。将其更改为按下事件(key-down),问题得以解决。

$(document).ready(function () {
    $('input, textarea').keydown(function (e) {
        e.stopPropagation();
    });
});

1
我有同样的问题,这个解决了我的问题。谢谢。 - Yusuf Giovanno

0
发现了一个问题。在代码的某个地方:
$(document).keypress(function (e) {
    if (e.which == 13) {
        e.preventDefault();
    }
});

它被用来捕获“Enter”键的按下,因为菜单元素在开始时被聚焦,导致跳转到另一个页面。


哎呀,也许比“document”更具体一些。 - bcr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接