虽然我使用e.preventDefault(),但标签默认操作不会停止

时间:2018-04-12 06:26:28

标签: javascript jquery

我在模式中显示文本区域当我按Tab键移动到下一个输入时我编写代码来阻止这个但是我没有为我工作。(当我按Tab键执行时甚至没有进入acceptTabsSpace功能)

$(document).on("keyup", "#collection-text-input", acceptTabsSpace);
function acceptTabsSpace(e){
    var keyCode = e.keyCode || e.which;
    if (keyCode == 9) {
        e.preventDefault();
        return false;
    }
 }

2 个答案:

答案 0 :(得分:0)

将侦听器添加到keydown上的触发器:

$(document).on("keydown", "#collection-text-input", acceptTabsSpace);
function acceptTabsSpace(e){
  var keyCode = e.keyCode || e.which;
  if (keyCode === 9) {
    e.preventDefault();
    return false;
  }
}

答案 1 :(得分:0)

使用keydown代替键,并使用tabspaces按Tab键两次。

$(document).on("keydown", "#collection-text-input", acceptTabsSpace);
  function acceptTabsSpace(e) {
   var keyCode = e.keyCode || e.which;
   if (e.keyCode === 9) {
     e.preventDefault();
     this.value = this.value.substring(0, this.selectionStart) + "\t" + 
     this.value.substring(this.selectionEnd);
     this.selectionEnd = s + 1;
   }
}