我已经写了一个类型文本的简单输入,但当我在光标位于文本框内时按Enter键时,它会失去焦点。如何忽略输入键以停止从文本框中失去焦点?我尝试过这样的事情:
<input type="text" (keyup)="keepFocus($event)" />
和keepFocus()是一种方法:
keepFocus(e) {
e.target.select();
}
但每次按一个键都会调用此方法,这不是很有效。有没有更好的解决方案来处理这种行为?
答案 0 :(得分:2)
您只捕获回车键,并在按下时阻止默认
document.getElementById('myInput').addEventListener('keypress', function(event) {
if (event.which === 13) event.preventDefault();
});
&#13;
<input type="text" id="myInput" />
&#13;
答案 1 :(得分:1)
另一种方法是使用 keyCode (使用 e参数)。
我的意思是,用这个:
http://www.javascripter.net/faq/keycodes.htm
而且:
https://www.w3schools.com/jsreF/event_preventdefault.asp
这样的事情会很好:
function keepFocus(e) {
if(e.keyCode == 13)
e.preventDefault();
}
&#13;
<input type="text" keyup="keepFocus" />
&#13;
这样可以防止在按下回车键时失去焦点!
答案 2 :(得分:1)
有两种方法可以完成这项工作。
首先,当用户点击&#34;输入&#34;
时,将焦点重新输入到输入<input type="text" onkeyup="keepFocus(event);" id="teste" />
function keepFocus(e) {
if (e.key=="Enter") {
var teste = document.getElementById ("teste");
teste.focus ();
}
}
其次,阻止文本字段的默认行为:
function keepFocus(e) {
if (e.key=="Enter") {
e.preventDefault ();
}
}
我认为第二种方式更好,因为您不必在输入中添加ID。