插入标签缩进而不是跳转到另一个表单元素或链接

时间:2013-10-11 06:17:00

标签: javascript jquery html

我目前正在研究用java / jsp编写的网络内容管理系统。每当用户想要编辑html中的页面时,我希望用户可以在html中维护缩进格式。所以我现在的问题是,每次用户按Tab键时,它都会跳转到另一个表单元素或链接,而不是插入缩进。

例如,我希望用户能够像这样输入(不使用空格键,& nbsp& thinsp,& ensp或& emsp):

<table>
     <tr>
         <td></td>
     </tr>
</table>

而不是像这样:

<table>
<tr>
<td></td>
</tr>
</table>

有没有可以解决这个问题的代码? (我试图避免使用任何插件,因为我希望它与浏览器无关:D)

提前致谢!

1 个答案:

答案 0 :(得分:1)

$(document).delegate('#textbox', 'keydown', function(e) {
    var keyCode = e.keyCode || e.which;

    if (keyCode == 9) {
        e.preventDefault();
        var start = $(this).get(0).selectionStart;
        var end = $(this).get(0).selectionEnd;

        // set textarea value to: text before caret + tab + text after caret
        $(this).val($(this).val().substring(0, start)
            + "\t"
            + $(this).val().substring(end));

        // put caret at right position again
        $(this).get(0).selectionStart =
        $(this).get(0).selectionEnd = start + 1;
    }
});

http://jsfiddle.net/jz6J5/