JQuery-“JQuery|&引用;聚焦文本框时光标未对齐
我的html正文中有一个文本框:JQuery-“JQuery|&引用;聚焦文本框时光标未对齐,jquery,Jquery,我的html正文中有一个文本框:input type=“text”id=“text input” 当用户按下enter键时,我使用此按钮将其聚焦: <script> $(document).keypress(function(e) { if(e.keyCode == 13) { $("#text-input").focus(); } }); </script> $(文档)。按键(功能(e){ 如果
input type=“text”id=“text input”
当用户按下enter键时,我使用此按钮将其聚焦:
<script>
$(document).keypress(function(e) {
if(e.keyCode == 13) {
$("#text-input").focus();
}
});
</script>
$(文档)。按键(功能(e){
如果(e.keyCode==13){
$(“#文本输入”).focus();
}
});
我用来试用的网页中只有文本框。当我单击空白区域并按enter键时,“|”提示将向下对齐。如果我重复单击并按enter键,文本框中的“|”会越来越向下移动
出了什么问题?尝试使用
keyup
而不是keypress
$(document).keyup(function(e) {
if(e.keyCode == 13) {
$("#text-input").focus();
}
});
示例:和
在铬中测试,结果不同
注意:keypress=(向下键和向上键2事件)。可能这就是问题所在,但不确定。
$(document).keypress(function(e)
{
if(e.keyCode === 13)
{
$("#text-input").focus();
return false;
}
});
为了改进这一点,实际上可以使用
e.preventDefault()的组合代码>和e.停止即时复制()
而不是返回false
确保一旦命中此处理程序,除了您想要的.focus()
之外,不会发生其他任何事情:
$(document).keypress(function(e)
{
if (e.keyCode === 13)
{
$("#text-input").focus();
e.preventDefault();
e.stopImmediatePropagation();
}
});
唯一需要注意的是e.stopImmediatePropagation()代码>仅适用于在代码中此处理程序之后定义的事件处理程序。也就是说,如果在.focus()
之前有另一个处理程序绑定到文档的按键,它将继续被命中。因此,为了确保只调用了this,您需要确保它是代码中定义的第一个处理程序
我想您指的是光标?什么浏览器?也许一个JSFIDLE示例?一个测试用例的JSFIDLE和浏览器信息将非常有用。我将提供帮助:我正在使用Chrome18。若要复制,请将鼠标光标放在文本框的下方(外部)。单击,然后按enter键。反复重复这两个步骤。此外,当输入文本时会出现一些奇怪的行为,但我没有具体的指示来实现这些行为。哦,是的,光标。浏览器:谷歌浏览器,最新。1) 在文本框中单击。光标很好。2) 单击离焦文本框附近的空白处。3) 按回车键对焦。光标应该关闭。使用键控键可以工作。谢谢我希望我知道真正的原因是什么…:这也行,谢谢!但我使用keyup,因为JQuery文档说keypress在浏览器中可能有不同的行为。知道为什么返回false有效吗?returnfalse代码>=e.preventDefault()代码>&&e.stopPropagation()代码>感谢您的详细说明。:)
$(document).keypress(function(e)
{
if(e.keyCode === 13)
{
$("#text-input").focus();
return false;
}
});