使用 jquery 检测 Enter 键被按下
Posted
技术标签:
【中文标题】使用 jquery 检测 Enter 键被按下【英文标题】:Detect Enter key is pressed with jquery 【发布时间】:2011-08-03 15:31:52 【问题描述】:我有一个显示值的文本字段。我想要的是当用户在该文本字段中写入一个新值并按 Enter 键时,会触发一个 ajax 函数来执行分页操作。我有一个这样的文本字段:
<input type="text" id="page" name="page" value="<?php echo($this->pn);?> />
当用户写入任何新值并按 Enter 键时,我希望触发以下 ajax 函数:
update_ajax2(rpp:rpp);?>,pn:document.page.paged.value,filter:'filter);?>',orderby :'orderby);?>');我尝试使用按键事件来检测if(e.which===13)
,但这并不能解决问题。谁能指导我?
【问题讨论】:
为什么对keypress
事件采取行动不能解决问题?你有错误吗?你试过keyup
吗?
@ctcherry 它在 1 次按键上调用 2 种类型的函数。首先它加载我想要的值,然后在同一个按键上加载文本框的value
属性的函数
【参考方案1】:
<input type="text" id="txt"/>
$('#txt').keydown(function (e)
if(e.keyCode == 13)
alert('you pressed enter ^_^');
)
开启jsfiddle。
【讨论】:
@experimentX 谢谢老兄,但它始终具有文本框的value
属性中的值。它没有检测到新值....
@AwaisQarni 你能发个小提琴吗??
@AwaisQarni 我的意思是jsfiddle.net 或更新我的jsfiddle.net/VCdEn
@AwaisQarni ...不..它不是由于价值。这是由于表单元素。即正在提交表单(默认)。防止它。 e.preventDefault()
在这里更新jsfiddle.net/FxU9X/6
标准可用性表示使用按键事件而不是按键事件。它使他们可以选择在按键后取消,方法是在抬起之前按下修饰符(如 esc)。这也是大多数库捕获事件的方式,因此它带来了一致性。 keydown 用于数据输入,key up 用于事件。【参考方案2】:
使用这个,它对我有用:)
$("#search-txt" ).on( "keydown", function(event)
if(event.which == 13)
return false;//do something
);
【讨论】:
【参考方案3】:看看这个插件:https://github.com/jeresig/jquery.hotkeys
【讨论】:
【参考方案4】:按键事件应该可以尝试一下
function keyPressedTest(a)
a=(a)?a:window.event;
input=(a.target)?a.target:a.srcElement;
if(a.keyCode==13)
your_function()
【讨论】:
以上是关于使用 jquery 检测 Enter 键被按下的主要内容,如果未能解决你的问题,请参考以下文章