我正在使用引导程序的预输入进行自动完成,它运行良好,但我在谷歌浏览器中有一个问题,如果我搜索包含“&”的名称,那么这个字符将被删除,我无法搜索该名称,例如 H&M。
有没有什么办法解决这一问题?在 Firefox 中它可以工作,或者如果我复制并粘贴 & 字符它也可以工作。
Bootstrap的例子也有这个问题 http://getbootstrap.com/2.3.2/javascript.html#typeahead
如前所述,这发生在适用于 MacOS 的 Google Chrome 中
我正在使用引导程序的预输入进行自动完成,它运行良好,但我在谷歌浏览器中有一个问题,如果我搜索包含“&”的名称,那么这个字符将被删除,我无法搜索该名称,例如 H&M。
有没有什么办法解决这一问题?在 Firefox 中它可以工作,或者如果我复制并粘贴 & 字符它也可以工作。
Bootstrap的例子也有这个问题 http://getbootstrap.com/2.3.2/javascript.html#typeahead
如前所述,这发生在适用于 MacOS 的 Google Chrome 中
问题是 & 和向上箭头具有相同的键码 (38) 并且引导程序具有以下代码:
case 38: // up arrow
e.preventDefault()
this.prev()
break
该代码从搜索字段中删除 &
我可以通过检查是否使用了 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