覆盖浏览器中的TAB

如果我在输入字段中键入文本并按ENTER ,我知道的所有浏览器的默认行为是提交表单,但是如果我在textarea中按ENTER则会添加一个新行。

有什么方法可以模仿这种行为(缩进,不提交表单)每当我在textarea中按TAB Bespin似乎是这样做的,但是在canvas元素中。

我自己没有这样做,但似乎可以覆盖事件处理程序并捕获密钥。 见例如这里 。

哦,对于JQuery人群,甚至还有一个插件 。

当然有办法。 你使用任何js库吗? 如果没有,想法只是在textarea元素上添加一个keydown事件处理程序,检查处理程序是否事件的keyCode等于9,如果是,则在文本区域的内容中附加“\ t”。 原型片段:

 textarea.observe('keydown', function (e) { if(e.keyCode==9) { e.element().insert("\t"); e.stop(); } }