开发者问题收集

当我从 jquery 调用时,ReferenceError:事件未在我的应用程序中定义

2015-06-10
469

当我调用此函数时出现此错误:

 if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
 ReferenceError: event is not defined 

这是我的代码:

 $(".decimalonly").each(function () {
                    $(this).keydown(function (e) {


                        if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||

                                    (event.keyCode == 65 && event.ctrlKey === true) ||
                                    ((event.keyCode == 190 || event.keyCode == 110) && $(this).val().indexOf(".") == -1) ||

                                    (event.keyCode >= 35 && event.keyCode <= 39)) {

                            return;
                        }
                        else {
                            keypress
                            if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
                                event.preventDefault();
                            }
                        }
                    });
                });
2个回答

您正在将 e 传递给函数,但您在函数中调用 event 。将 $(this).keydown(function (e) 替换为 $(this).keydown(function (event) 即可。

Reeno
2015-06-10

您正在传递 e 作为参数,那么 e 变量将包含所有事件信息。因此,请用 e 替换每个 event 。我还注意到 keypress 也应该会导致错误,因为它未在任何地方定义,它不是赋值或函数调用。

fsacer
2015-06-10