Javascript 插入制表符缩进,而不是跳入另一个表单元素或链接
我目前正在开发用java/jsp编写的web内容管理系统。每当用户想要编辑html格式的页面时,我希望用户能够维护html格式的缩进格式。所以现在我的问题是,每次用户按tab键,它都会跳转到另一个表单元素或链接,而不是插入缩进 例如,我希望用户能够这样键入(无需使用空格键、thinsp、ensp或emsp):Javascript 插入制表符缩进,而不是跳入另一个表单元素或链接,javascript,jquery,html,Javascript,Jquery,Html,我目前正在开发用java/jsp编写的web内容管理系统。每当用户想要编辑html格式的页面时,我希望用户能够维护html格式的缩进格式。所以现在我的问题是,每次用户按tab键,它都会跳转到另一个表单元素或链接,而不是插入缩进 例如,我希望用户能够这样键入(无需使用空格键、thinsp、ensp或emsp): 而不是像这样: <table> <tr> <td></td> </tr> </table> 有什么代码可以
而不是像这样:
<table>
<tr>
<td></td>
</tr>
</table>
有什么代码可以克服这个问题吗?(我尽量避免使用任何插件,因为我希望它独立于浏览器:D)
提前谢谢
$(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;
}
});
请参见(忽略jQuery回答)为什么这个答案被否决?重复问题的重复答案。嘿@Shea你不应该这样做。这不是一个好行为。哇,这么多重复!我确实搜索了,但不幸的是我搜索了错误的关键字。无论如何谢谢@Rony:)非常欢迎您。。。。我也有同样的问题。。。我通过这些链接解决了这个问题。。。
$(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;
}
});