Javascript 焦点位于文本框中文本的末尾

Javascript 焦点位于文本框中文本的末尾,javascript,jquery,Javascript,Jquery,我有一个要求:一个文本框最多可以有50个字符,为了实现这一点,我给出了一个默认值 if (!(event.ctrlKey && (event.which == 65 || event.which == 86 || event.which == 67 || event.which == 88)) && (!(event.shiftKey && (event.which == 35 || event.which == 3

我有一个要求:一个文本框最多可以有50个字符,为了实现这一点,我给出了一个默认值

if (!(event.ctrlKey && (event.which == 65 || event.which == 86 || event.which == 67 || event.which == 88))
                && (!(event.shiftKey && (event.which == 35 || event.which == 36)))
                && (key != 8 && key != 37 && key != 39 && key != 46 && key != 36 && key != 35 && key != 33 && key != 34)) {
                    event.preventDefault();
                }
但现在的要求是:当我们按ctrl+a,然后按abc时,它应该删除文本中的所有内容并打印abc。
为了实现这一点,我编写了以下代码->

var focusItem = $('<input type="text">');
     function getSelText() {
              var txt = '';
              //IE
        var focusItem = $('<input type="text">');
         if (document.selection != undefined) {
             focusItem.focus();
             var sel = document.selection.createRange();
             var rangeParent = sel.parentElement();
             txt = sel.text;
             if (!(event.ctrlKey && (event.which == 65 || event.which == 86 || event.which == 67 || event.which == 88))
             && (!(event.shiftKey && (event.which == 35 || event.which == 36)))
             && (key != 8 && key != 37 && key != 39 && key != 46 && key != 36 && key != 35 && key != 33 && key != 34)) {
             //event.preventDefault();
            if (txt.length > 0 && ((key >= 65 && key <= 90) || (key >= 48 && key <= 57) || (key >= 97 && key <= 122))) {
                sel.text = String.fromCharCode(key).toLowerCase();
                }
                txt = sel.text;
             }
          }                        
          return txt;
       }
var focusItem=$('');
函数getSelText(){
var-txt='';
//即
var focusItem=$('');
if(document.selection!=未定义){
focusItem.focus();
var sel=document.selection.createRange();
var rangeParent=sel.parentElement();
txt=sel.text;
如果(!(event.ctrlKey&&(event.which==65 | | event.which==86 | | event.which==67 | | event.which==88))
&&(!(event.shiftKey&(event.which==35 | | event.which==36)))
&&(键!=8&&key!=37&&key!=39&&key!=46&&key!=36&&key!=35&&key!=33&&key!=34)){
//event.preventDefault();

如果(txt.length>0&&((key>=65&&key=48&&key=97&&key将焦点设置到文本框末尾的最简单方法是将文本框的文本设置为自身:

focusItem.val(focusItem.val());

我尝试检查focusItem
if(txt.length>0&&((key>=65&&key=48&&key=97&&key)的值,如果您的文本框的id为
myTextBox
,则执行
$('myTextBox').val($('myTextBox').val())
将光标放在末尾。您只需获取文本框的值,无需尝试为该部分创建选择范围。如果您可以创建代码的jsfiddle.net并将链接添加到您的问题,则回答您的问题会容易得多。现在很难说问题出在哪里。