输入键可过滤的小部件问题

Filterable widget issue with enter key

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

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

  1. 关注文本字段
  2. 按 a('a' 出现在字段中)
  3. 按回车键(无变化)
  4. 按一个(不变)
  5. 按 a('aa' 出现在字段中)

我已经登录 an issue,但怀疑它在短期内是否会受到关注。有人建议变通吗?

至少我们可以通过模拟另一个按键来告诉 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