SCRIPT5007:无法获取 属性 'keypress' 的值:对象为空或未定义
SCRIPT5007: Unable to get value of the property 'keypress': object is null or undefined
我正在尝试使用下面的 jQuery 代码在文本框的按键上执行一些代码,但出现错误。你能帮我一下吗?我什至尝试过 keydown 但面临同样的问题。
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<style>
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; }
</style>
</head>
<body>
<textarea id="screen" class="ex1"></textarea>
<input type="text" id="command" style="width: 480px; height=600px;"/>
<script>
$("#command").keydown(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);
});
appendCommand();
}
});
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;
}
</script>
看起来您的代码运行良好。检查下面的 fiddle。我刚刚禁用了代码中的注释。
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;"/>
我无法使用 IE 9 浏览器,因此我尝试在 IE 11 浏览器中使用 文档模式 IE 9 进行测试。
您的代码在其中运行良好。这是测试结果。
如果您仍然遇到错误,那么我建议您升级到 IE 11 浏览器。 IE 9 版本太旧,目前不在支持范围内。
我正在尝试使用下面的 jQuery 代码在文本框的按键上执行一些代码,但出现错误。你能帮我一下吗?我什至尝试过 keydown 但面临同样的问题。
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<style>
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; }
</style>
</head>
<body>
<textarea id="screen" class="ex1"></textarea>
<input type="text" id="command" style="width: 480px; height=600px;"/>
<script>
$("#command").keydown(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);
});
appendCommand();
}
});
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;
}
</script>
看起来您的代码运行良好。检查下面的 fiddle。我刚刚禁用了代码中的注释。
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;"/>
我无法使用 IE 9 浏览器,因此我尝试在 IE 11 浏览器中使用 文档模式 IE 9 进行测试。
您的代码在其中运行良好。这是测试结果。
如果您仍然遇到错误,那么我建议您升级到 IE 11 浏览器。 IE 9 版本太旧,目前不在支持范围内。