Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript firefox中的退格键问题_Javascript_Jquery_Firefox - Fatal编程技术网

Javascript firefox中的退格键问题

Javascript firefox中的退格键问题,javascript,jquery,firefox,Javascript,Jquery,Firefox,我有一个文本框,并使用jquery应用了只允许有空格的字母表。它在chrome中工作,但在firefox中backspace键不工作 <input type="text" placeholder="" id="id1"> $(function(){ $('#id1').keypress(function (event) { if ((event.which >= 65 && event.which < 91) || (event.which

我有一个文本框,并使用jquery应用了只允许有空格的字母表。它在chrome中工作,但在firefox中backspace键不工作

<input type="text" placeholder="" id="id1">

$(function(){
$('#id1').keypress(function (event) {
      if ((event.which >= 65 && event.which < 91) || (event.which > 96 && event.which < 123) || event.which === 32 || event.which===0) {
          return true;
      }
        else {
          event.preventDefault();
      }
 })});

$(函数(){
$('#id1')。按键(函数(事件){
如果((event.which>=65&&event.which<91)| |(event.which>96&&event.which<123)| | event.which==32 | | event.which==0){
返回true;
}
否则{
event.preventDefault();
}
})});

这里是

浏览器处理退格字符的方式不同。在Chrome中,backspace永远不会进入按键事件处理程序,但在Firefox中却是如此

如果将
| | event.which==8
添加到条件中,您将允许退格并返回true,这将使其在Firefox中工作

编辑:上、下、左、右和Tab箭头在firefox中也不起作用

var ignoredKeys = [8, 9, 37, 38, 39, 40];

if (ignoredKeys.indexOf(event.which) >=0 || (event.which >= 65 && event.which < 91) || (event.which > 96 && event.which < 123) || event.which === 32 || event.which===0) {
    return true;
} else {
    event.preventDefault();
}
var ignoredKeys=[8,9,37,38,39,40];
if(ignoredKeys.indexOf(event.which)>=0 | | |(event.which>=65&&event.which<91)| |(event.which>96&&event.which<123)| event.which==32 | | event.which==0){
返回true;
}否则{
event.preventDefault();
}

这应该适用于所有[主要]浏览器:

$('#id1').keydown(function (event) {
    if (event.which == 8) {
        // ...
    } else {
        event.preventDefault();
    }
);
注意使用
keydown
而不是
keypress
,这是它工作的关键