SCRIPT5007:无法获取属性'keypress'的值:对象为null或未定义

时间:2019-12-31 06:53:47

标签: java jquery keypress keydown

我正在尝试使用如下所示的jQuery代码在文本框的按键上执行一些代码,但出现错误。您能在这里帮我吗?我什至尝试了keydown,但面临同样的问题。

$("#command").keypress(function(event){
    alert('Before keycode validation cond');
var keycode = (event.keyCode ? event.keyCode : event.which);
       alert('After keycode validation');
       if(keycode == '13')
       {
              alert('ENTER key selected');
              $.get('Servlet3', function(response) {
                     alert(response);
                     appendResponse(response); //JS Method
              });
              appendCommand();  //JS Method
       }
});

2 个答案:

答案 0 :(得分:0)

看起来您的代码运行正常。检查下面的小提琴。我只是禁用了代码中的注释。

function onKeyDown(event) {
        //alert('Before keycode validation cond');
        var keycode = (event.keyCode ? event.keyCode : event.which);
        //alert('After keycode validation');
        if(keycode == '13')
        {
            //alert('ENTER key selected');
            $.get('Servlet3', function(response) {
                //alert(response);
                appendResponse(response);
            });
            appendCommand();
        }
    }
    if (window.addEventListener) {
            window.addEventListener("keydown", onKeyDown, true);
        } else if (document.attachEvent) { // IE 
            // alert(document); You can test this in IE
            document.attachEvent("onkeydown", onKeyDown);
        } else {
            document.addEventListener("keydown", onKeyDown, true);
        }
    function appendCommand() {
        //alert('appending command');
        document.getElementById('screen').textContent = document.getElementById('screen').textContent + document.getElementById('command').value;
    }
    function appendResponse(response) {
        //alert('appending response');
        document.getElementById('screen').textContent = document.getElementById('screen').textContent + response;
    }
textarea.ex1 { background-color: white; width: 610px; height: 310px; overflow: Scroll; }
        #outer {  width:100%; text-align: center;} .inner { display: inline-block; }
        body { background-color: gray; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="screen" class="ex1"></textarea>
<input type="text" id="command" style="width: 480px; height=600px;"/>

答案 1 :(得分:0)

我无法在IE 9浏览器中使用,因此我尝试在IE 11浏览器中使用文档模式IE 9 进行测试。

您的代码在其中运行良好。这是测试结果。

enter image description here

如果仍然出现错误,则建议您升级到IE 11浏览器。 IE 9版本太旧,目前不在支持范围内。