在浏览器中覆盖 TAB
如果我在输入字段中输入文本并按 ENTER
,我所知道的所有浏览器的默认行为都是提交表单,但是如果我在文本区域内按 ENTER
添加了新行。
每当我在文本区域内按 TAB
时,有没有办法模仿这种行为(缩进,而不是提交表单)? Bespin 似乎可以做到这一点,但是在 canvas
元素中。
If I'm typing text in a input field and press ENTER
the default behavior of all the browsers I know is to submit the form, however if I press ENTER
inside a textarea a new line is added.
Is there any way to mimic this behavior (indent, not submit the form) whenever I press TAB
inside a textarea? Bespin seems to do it, but in a canvas
element.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我自己没有这样做,但似乎可以覆盖事件处理程序并捕获密钥。请参阅此处。
哦,对于 JQuery 人群来说,甚至还有一个插件。
I haven't done it myself, but it seems to be possible to override the event handler and catch the key. See e.g. here.
Oh and for the JQuery crowd there even is a plugin.
当然有办法。你使用任何js库吗?如果不是,想法只是在 textarea 元素上添加一个 keydown 事件处理程序,检查处理程序中事件的 keyCode 是否等于 9,如果是,则在内容中附加一个“\t”的文本区域。原型片段:
Of course there's a way. Do you use any js library? If not, the idea is just to add a keydown event handler on the textarea element, check in the handler if the keyCode of the event equals 9, and if so append a "\t" to the content of the textarea. Prototype snippet:
这段代码应该可以工作。
如果您收到“无法读取 null 属性”错误,请执行以下操作:
HTML 应遵循此要求并如下所示:
This code should work.
If you get a 'cannot read property of null' error do this:
The HTML should follow suit and look like this: