【问题标题】:Detect Enter key is pressed with jquery使用 jquery 检测 Enter 键被按下
【发布时间】: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 属性的函数

标签: ajax jquery javascript-events


【解决方案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】:

    【讨论】:

      【解决方案4】:

      按键事件应该可以尝试一下

      function keyPressedTest(a)
      {
          a=(a)?a:window.event;
          input=(a.target)?a.target:a.srcElement;
          if(a.keyCode==13)
          {
              your_function()
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-24
        • 2010-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-04
        • 2017-07-27
        • 2018-07-21
        相关资源
        最近更新 更多