preventDefault() 也禁用文本输入
preventDefault() disables text input as well
编辑:我想在输入一些文本后使用回车键清除文本框。很抱歉我造成的混乱
edit 2 缺少的事件参数是这一切的关键。对不起,我是一个失败的程序员。
我想在按回车键时禁用新的 line/break。但是,版本 1 不起作用,因为我根本无法输入任何文本。
版本 2 有效,我仍然可以在继续输入新文本的同时清除字段。
从我的理解来看,无论我是否同时按下 shift 键 + enter,它应该仍然允许我输入。为什么会有这样的差异? Shift 键的默认选项与文本框上的 enabling/disabling 输入有何关系?我想做的是在按下回车按钮时禁用新的 line/break,但我发现它也禁用了输入部分,根据我的理解,它不应该?
// html
<textarea type="text" id="box">Some text</textarea>
// javascript
document.getElementById('box').addEventListener('keypress', (e)=>{
//version 1
if(e.keyCode == 13){ //why does this version also disable any text input?
e.preventDefault();
document.getElementById('box').value = '';
}
//version 2
if(e.keyCode == 13 && e.shiftKey){
e.preventDefault();
document.getElementById('box').value = '';
}
});
您的代码抛出错误,因为它不知道变量 e
指的是什么。如果您查看错误控制台,您应该会看到该错误。要修复它,您应该将其传递给函数。当您按回车键时,这将清除教科书。那是你要的吗?我留下了这条线,但把它注释掉了。
document.getElementById('box').addEventListener('keypress', (e)=>{
//version 1
if(e.keyCode == 13){ //why does this version also disable any text input?
e.preventDefault();
document.getElementById('box').value = '';
}
});
<textarea type="text" id="box">Some text</textarea>
编辑:我想在输入一些文本后使用回车键清除文本框。很抱歉我造成的混乱
edit 2 缺少的事件参数是这一切的关键。对不起,我是一个失败的程序员。
我想在按回车键时禁用新的 line/break。但是,版本 1 不起作用,因为我根本无法输入任何文本。
版本 2 有效,我仍然可以在继续输入新文本的同时清除字段。
从我的理解来看,无论我是否同时按下 shift 键 + enter,它应该仍然允许我输入。为什么会有这样的差异? Shift 键的默认选项与文本框上的 enabling/disabling 输入有何关系?我想做的是在按下回车按钮时禁用新的 line/break,但我发现它也禁用了输入部分,根据我的理解,它不应该?
// html
<textarea type="text" id="box">Some text</textarea>
// javascript
document.getElementById('box').addEventListener('keypress', (e)=>{
//version 1
if(e.keyCode == 13){ //why does this version also disable any text input?
e.preventDefault();
document.getElementById('box').value = '';
}
//version 2
if(e.keyCode == 13 && e.shiftKey){
e.preventDefault();
document.getElementById('box').value = '';
}
});
您的代码抛出错误,因为它不知道变量 e
指的是什么。如果您查看错误控制台,您应该会看到该错误。要修复它,您应该将其传递给函数。当您按回车键时,这将清除教科书。那是你要的吗?我留下了这条线,但把它注释掉了。
document.getElementById('box').addEventListener('keypress', (e)=>{
//version 1
if(e.keyCode == 13){ //why does this version also disable any text input?
e.preventDefault();
document.getElementById('box').value = '';
}
});
<textarea type="text" id="box">Some text</textarea>