如何在Java脚本中关注Button

时间:2016-09-24 11:04:43

标签: javascript jquery html

简单我有这个HTML文档

<input type="text" id="my_txt" onkeypress="move_focus(event)"/>
<br>
<input type="button" id="my_btn" />
<script >
function move_focus(e)
{
    if (e.keyCode==13) $("#my_btn").focus();
}
</script>

我想要的是: 在输入文本my_txt的按键事件上,如果按下的键为ENTER键,则将焦点移至my_btn按钮。

我按照上面的进行了操作,当按下Enter键时没有任何操作。

我在这个网络上发现了不止一篇关于这个主题的帖子,但是大多数答案都很复杂,而且有些我不在乎我的需要。

请帮助!..提前致谢。

4 个答案:

答案 0 :(得分:3)

Keynumber 13是一个默认用于接受事物(https://api.jquery.com/event.preventdefault/)的键,所以基本上你必须用它来覆盖它:

e.preventDefault();

整个代码

<input type="text" id="my_txt" onkeypress="move_focus(event)"/>
<br>
<input type="button" id="my_btn" />
<script >
function move_focus(e)
{
  e.preventDefault();
  if (e.keyCode==13) $("#my_btn").focus();
}
</script>

答案 1 :(得分:1)

对此的重要部分是使用bind。 Bind创建一个新函数,将thisthis)设置为传递给bind()的第一个参数。 因此,当我们编写$('#my_txt').bind("enterKey")时,它实际上将#my_txt和事件enterKey映射到函数将执行的相同上下文中。所以每次我们按下input元素内的一个键时标识#mytxt,当我们释放密钥时,它会检查按下的密钥是否为Enter Key,这是由$('#my_txt').keyup(e)对象作为参数的行keypress提供的。此活动将是move_focus = function move_focus(e) { $('#my_txt').bind("enterKey",function(e){ $("#my_btn").focus(); //disable to prevent multiple enter $(this).attr("disabled", "disabled") }); $('#my_txt').keyup(function(e){ if(e.keyCode == 13) //checks if the event object is a Enter Key or not { $(this).trigger("enterKey"); //explicitly triggers enterkey event with whom #my_txt is bound to } }); }活动。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="my_txt" onkeypress="move_focus(event)"/>
<br/>
<input type="button" id="my_btn" value="button" />
{{1}}

答案 2 :(得分:0)

试试这个使用jQuery的例子:

$( "#my_txt" ).keypress(function(event) {
	var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '13'){
  	  $( "#my_btn" ).focus();
    }
});
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<body> 
  <input type="text" id="my_txt"/><br>
  <input type="button" id="my_btn" value="Button" />
</body>

答案 3 :(得分:-2)

而不是使用:

$("#my_btn").focus();

请使用:

document.getElementById("my_btn").focus();