Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么IE 8会让光标跳到这个JS的文本区域的末尾?_Javascript_Internet Explorer_Cursor_Textarea - Fatal编程技术网

Javascript 为什么IE 8会让光标跳到这个JS的文本区域的末尾?

Javascript 为什么IE 8会让光标跳到这个JS的文本区域的末尾?,javascript,internet-explorer,cursor,textarea,Javascript,Internet Explorer,Cursor,Textarea,在Firefox中,使用上面的脚本(包含在下面的内联),可以通过点击中间的字符串和打字,或者使用键盘后键(和Ctrl +左箭头)来编辑TetraTrea的内容。p> 在IE中,光标总是跳到末端。为什么会这样,我该如何预防 HTML: 我猜IE会清除文本框值,然后插入新文本。因此,插入符号位置丢失 您可以做的是将插入符号位置保存在内存中,并在设置值: 不要每次都使用substring()截断$(“#bob”),而应仅在文本长度大于160时执行此操作: $(document).ready(func

在Firefox中,使用上面的脚本(包含在下面的内联),可以通过点击中间的字符串和打字,或者使用键盘后键(和Ctrl +左箭头)来编辑TetraTrea的内容。p> 在IE中,光标总是跳到末端。为什么会这样,我该如何预防


HTML:


我猜IE会清除文本框值,然后插入新文本。因此,插入符号位置丢失

您可以做的是将插入符号位置保存在内存中,并在设置值:

不要每次都使用
substring()
截断$(“#bob”),而应仅在文本长度大于160时执行此操作:

$(document).ready(function(){
    var oldtext = $("#bob").val();

    $("#bob").keyup(function(){
        if( $("#bob").val().length > 160 )
            $("#bob").val(oldtext);
        else
            oldtext = $("#bob").val();

        $("#debug").append("\n+");
    });
});
在IE中,无论何时修改
,光标都会跳到末尾

$(document).ready(function(){
    $("#bob").keyup(function(){
        $("#bob").val($("#bob").val().substring(0,160));
        $("#debug").append("\n+");
    }); 
});
$(document).ready(function(){
    $("#bob").keyup(function(){
        var caretPosition = $("#bob").prop("selectionStart"); // caret position

        $("#bob").val($("#bob").val().substring(0,160));

        $("#bob").prop({selectionStart: caretPosition,   // restore caret position
                        selectionEnd:   caretPosition});
        // if start == end, it defines the caret position as selection length == 0

        $("#debug").append("\n+");
    }); 
});
$(document).ready(function(){
    var oldtext = $("#bob").val();

    $("#bob").keyup(function(){
        if( $("#bob").val().length > 160 )
            $("#bob").val(oldtext);
        else
            oldtext = $("#bob").val();

        $("#debug").append("\n+");
    });
});