1

我正在使用引导程序的预输入进行自动完成,它运行良好,但我在谷歌浏览器中有一个问题,如果我搜索包含“&”的名称,那么这个字符将被删除,我无法搜索该名称,例如 H&M。

有没有什么办法解决这一问题?在 Firefox 中它可以工作,或者如果我复制并粘贴 & 字符它也可以工作。

Bootstrap的例子也有这个问题 http://getbootstrap.com/2.3.2/javascript.html#typeahead

如前所述,这发生在适用于 MacOS 的 Google Chrome 中

4

2 回答 2

1

问题是 & 和向上箭头具有相同的键码 (38) 并且引导程序具有以下代码:

      case 38: // up arrow
      e.preventDefault()
      this.prev()
      break

该代码从搜索字段中删除 &

于 2013-10-02T08:05:45.537 回答
1

我可以通过检查是否使用了 shift 键来区分向上箭头和 & 符号来解决这个问题。

case 38: // up arrow / ampersand
  // When used with the shiftKey this is actually the ampersand. 
  // Don't prevent default or call prev if the shift key is also pressed
  if (!e.shiftKey) {
    e.preventDefault()
    this.prev()
  }
  break

我还对向下箭头(案例 40)应用了相同的检查,因为它也是由左括号触发的。

case 40: // down arrow / left parenthesis
  // When used with the shiftKey this is actually the left parenthesis. 
  // Don't prevent default or call next if the shift key is also pressed
  if (!e.shiftKey){
    e.preventDefault()
    this.next()
  }
  break
于 2015-03-30T18:52:01.553 回答