使用回车键可过滤的小部件问题

时间:2017-05-10 07:55:34

标签: jquery-mobile

https://api.jquerymobile.com/filterable/

这个小部件的实现似乎有一个问题,如果你在文本字段中输入,然后按Enter键没有任何反应,但是你的下一次按键没有效果。例如:

  1. 专注于文字字段
  2. 按a(' a'出现在字段中)
  3. 按enter键(无更改)
  4. 按a(无更改)
  5. 按a(' aa'出现在字段中)
  6. 我已经记录an issue,但不确定它会在短期内得到关注。有人建议解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

至少我们可以告诉JQM通过模拟另一个按键来恢复_preventKeyPress标志:

$(document).on("keyup", ".ui-input-search>input", function(e) {
  var key = e.keyCode ? e.keyCode : e.which ? e.which : 0;
  if(key == 13) {
    $(this).trigger(jQuery.Event("keypress", {
      srcElement: this,
      bubbles: true,
      cancelable: true,
      which: 0,
      keyCode: 0,
      charCode: 0,
      target: this,
      currentTarget: this,
      eventPhase: 2, // AT TARGET
      type: "keypress",
      view: e.view,
      returnValue: true
    }));
  }
});

修改

为了完整起见,这是Omar的解决方案:

https://github.com/jquery/jquery-mobile/issues/8571#issuecomment-300430818