Javascript 检查光标是否位于输入文本的末尾

Javascript 检查光标是否位于输入文本的末尾,javascript,jquery,html,cursor,Javascript,Jquery,Html,Cursor,我想做的是当我把电子邮件地址test@example.com, test@example.co.uk,等等,我点击空格,我想检查光标是否在输入文本的末尾,然后才能在元素中添加HTML if (selectionEndofText) { if (e.which == 32) { $('#oI').append('<div class="vR"><span class="vN" data-hovercard-name="'+name+'" data-hovercard-

我想做的是当我把电子邮件地址test@example.com, test@example.co.uk,等等,我点击空格,我想检查光标是否在输入文本的末尾,然后才能在元素中添加HTML

if (selectionEndofText) {
  if (e.which == 32) {
    $('#oI').append('<div class="vR"><span class="vN" data-hovercard-name="'+name+'" data-hovercard-email="'+email+'" data-hovercard-owner-id="137"><div class="vT">'+name+'</div><div class="vM"></div></span><input name="to" type="hidden" value="<'+name+'>"></div>');
    $('.vR').insertBefore('#domodal_email_receipt');
    $('#domodal_email_receipt').val('');
  }
}
if(选择ondoftext){
如果(e.which==32){
$('#oI')。附加(''+name+'');
$(“.vR”).insertBefore(“#domodal_email_receive”);
$('domodal'u email_receive').val('');
}
}
完整代码:

$(document).on('keydown', '#domodal_email_receipt', function(e) {
  var fullname = $(this).val();
  var name = fullname.split(' <');
  var selectionEndofText = $(this).val().length;
  var name = name[0];
  var email = '';

  if (fullname.indexOf('<') > -1) {
    email = fullname.split('<');
    email = email[1].replace('>', '');
  }

  alert("selectionEndofText................."+selectionEndofText);

  //if (!selectionEndofText)
    if (e.which == 32) {
      $('#oI').append('<div class="vR"><span class="vN" data-hovercard-name="'+name+'" data-hovercard-email="'+email+'" data-hovercard-owner-id="137"><div class="vT">'+name+'</div><div class="vM"></div></span><input name="to" type="hidden" value="<'+name+'>"></div>');
      $('.vR').insertBefore('#domodal_email_receipt');
      $('#domodal_email_receipt').val('');
    }
});
$(document).on('keydown','domodal_email_receive',函数(e){
var fullname=$(this.val();
var name=fullname.split(“”);
$(“.vR”).insertBefore(“#domodal_email_receive”);
$('domodal'u email_receive').val('');
}
});

除了在if语句中检查空格关键字外,还可以使用返回数字的
.selectionStart
检查插入符号位置。因此,如果当前位置等于长度,则意味着它位于输入端

要清除输入,请使用
setTimeOut
使其最后运行。否则,里面会有一个空间

if (e.which == 32 && selectionEndofText === this.selectionStart) {
  $('#oI').append('<div class="vR"><span class="vN" data-hovercard-name="'+name+'" data-hovercard-email="'+email+'" data-hovercard-owner-id="137"><div class="vT">'+name+'</div><div class="vM"></div></span><input name="to" type="hidden" value="<'+name+'>"></div>');
  $('.vR').insertBefore('#domodal_email_receipt');

  setTimeout(function(){
    $('#domodal_email_receipt').val('');
  }, 0);

}
if(例如which==32&&selectionEndofText==this.selectionStart){
$('#oI')。附加(''+name+'');
$(“.vR”).insertBefore(“#domodal_email_receive”);
setTimeout(函数(){
$('domodal'u email_receive').val('');
}, 0);
}