如何在不失焦点的情况下选择满足?

时间:2016-07-18 09:12:48

标签: javascript jquery html

每次按Tab键时,它都会失去对桌面的焦点而不是插入空白区域。如何修复它以便tabbing只插入常规标签空间?

2 个答案:

答案 0 :(得分:1)

使用下面的代码。我没有测试过,但它应该可以正常工作。

jQuery(document).ready(function(){
    document.addEventListener("keydown", function(event) {
      if(event.which == 9)
      {
         jQuery(this).val(jQuery(this).val()+""+&#009);
      }

    }
});

答案 1 :(得分:0)

使用string input = "Hi there!!! :)"; string output = Regex.Replace(input, "[^0-9a-zA-Z]+", ""); 可以执行以下操作:

jQuery

确保将您的CSS设为

$('[contenteditable]').on('keydown', function(e) {
  if(e.which === 9){
    e.preventDefault();
    $(this).html($(this).html() + '&#009'); //insert tab character
  }
})

不幸的是,这只是基础知识。因为如果光标不在文本的末尾,那么事情就会搞乱。您应该获得光标位置,然后在该位置插入标签。

要处理这些问题,您需要更多地花费您的事件处理程序:

[contenteditable] {
  white-space : pre-wrap;
}

这会在正确的位置放置一个标签,然后重置光标。

你可以看到一个工作小提琴here。但请注意,这是非常简陋的,很可能它只适用于chrome。对于其他浏览器支持,您应该自己找到它。此外,以制表符开头和结尾字符的边缘情况也会失败,但这会让你在正确的方向上轻微推动