在按键时将焦点放在输入类型文本/搜索上



我已经编写了一个简单的文本类型输入,但是当我在光标在文本框内时按回车键时,它会失去焦点。如何忽略回车键以停止从文本框中失去焦点?我尝试做这样的事情:

<input type="text" (keyup)="keepFocus($event)" />

keepFocus(( 是一个方法:

keepFocus(e) {
e.target.select();
}

但是每次我按一个键时都会调用这种方法,效率不是很高。有没有更好的解决方案来处理这种行为?

您只捕获回车键,并在按下时阻止默认值

document.getElementById('myInput').addEventListener('keypress', function(event) {
if (event.which === 13) event.preventDefault();
});
<input type="text" id="myInput" />

另一种方法是获取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();
}
<input type="text" keyup="keepFocus" />

这将防止您在按下回车键时失去焦点!

有两种方法可以完成这项工作。

首先,当用户单击"Enter"时,将焦点重新放在输入上:

<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。

最新更新