Javascript 在文本区域中查找光标的位置

Javascript 在文本区域中查找光标的位置,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,为什么这个代码不起作用 您必须按文本区域上的TAB键 问题是,它不做/附加四个空格,并且在Chrome中默认浏览器操作切换到地址选项卡 想法?与问题相关,请尝试: $(function () { $("textarea").keydown(function (e) { if (e.keyCode == 9) { e.preventDefault(); var $this = $(this); var

为什么这个代码不起作用

您必须按文本区域上的TAB键

问题是,它不做/附加四个空格,并且在Chrome中默认浏览器操作切换到地址选项卡

想法?

与问题相关,请尝试:

$(function () {
    $("textarea").keydown(function (e) {
        if (e.keyCode == 9) {
            e.preventDefault();
            var $this = $(this);
            var pos = $this[0].selectionStart;
            $this.val($this.val().substring(0, pos) + "    " + $this.val().substring(pos));
            $this.setCursorPosition(pos + 4);
        }
    });
});
并添加来自post的JQuery

有关问题,请尝试:

$(function () {
    $("textarea").keydown(function (e) {
        if (e.keyCode == 9) {
            e.preventDefault();
            var $this = $(this);
            var pos = $this[0].selectionStart;
            $this.val($this.val().substring(0, pos) + "    " + $this.val().substring(pos));
            $this.setCursorPosition(pos + 4);
        }
    });
});
并添加来自post的JQuery


看一看

看一看

试试这个,我他妈的肯定能用

<form>
<textarea></textarea>
</form>
<script>
$(function(){
$("textarea").keydown(function(e){
if (e.which == 9){

$("textarea").append(" ");
return false;
}
});
});
</script>
我只是简单地将单词keyCode更改为,'因为单词keyCode是从jqueryui派生的。

试试这个,我敢肯定它会起作用

<form>
<textarea></textarea>
</form>
<script>
$(function(){
$("textarea").keydown(function(e){
if (e.which == 9){

$("textarea").append(" ");
return false;
}
});
});
</script>
我只是简单地将单词keyCode更改为,'因为单词keyCode是从jquery ui派生的。

要在jquery中操作文本区域选择和插入符号位置,我建议使用,它可以在所有主要浏览器中工作,并提供获取和设置插入符号/选择位置的方法,在插入符号位置插入内容等。您需要的代码是:

$("textarea").keydown(function(e) {
    if (e.keyCode == 9) {
        e.preventDefault();
        $(this).replaceSelectedText("    ");
    }
});

为了在jQuery中操作textarea选择和插入符号位置,我建议使用For来操作,它在所有主要浏览器中都可以使用,并提供获取和设置插入符号/选择位置、在插入符号位置插入内容等方法。您需要的代码是:

$("textarea").keydown(function(e) {
    if (e.keyCode == 9) {
        e.preventDefault();
        $(this).replaceSelectedText("    ");
    }
});
这是我能做到的最好的了,但我不能让它在Firefox或Chrome上运行。如果有人在Chrome工作的情况下按了文本区的选择文本按钮,请随时通知我


这是我能做到的最好的了,但我不能让它在Firefox或Chrome上运行。如果有人在Chrome正常工作的情况下按下文本区中的选择文本按钮,请随时通知我。

观察:即使Stack Overflow的文本区(通常包含缩进代码)也不允许使用制表符。@genesis的可能重复:我不清楚。我还没有试着自己去做。但我的评论暗示这可能是不可行的。观察:即使是Stack Overflow的文本区域(通常包含缩进代码)也不允许使用制表符。@genesis的可能重复:我不太清楚。我还没有试着自己去做。但我的评论是,这可能是不可行的。这可能是因为append不是一个javascript字符串函数。尝试使用旧字符串=字符串+额外内容;但这会在末尾附加这些空格。我想让它切换到指针的实际位置,直到切换到我的地址栏tsandbox.phpcode.eu/g/81281.phpThats,因为javascript有一个错误。请查看更正。工作正常,但不是我想要的。它将tab追加到末尾,而不是实际的指针位置,这可能是因为append不是javascript字符串函数。尝试使用旧字符串=字符串+额外内容;但这会在末尾附加这些空格。我想让它切换到指针的实际位置,直到切换到我的地址栏tsandbox.phpcode.eu/g/81281.phpThats,因为javascript有一个错误。请查看更正。工作正常,但不是我想要的。它在末尾附加了标签,而不是实际的指针位置。请再次检查我的代码,我再次做了一些修改,现在在所有浏览器中都可以正常工作。请再次检查我的代码,我再次做了一些修改,现在在所有浏览器中都可以正常工作。很好,我会查看它。谢谢你,我来看看。谢谢