输入键可过滤的小部件问题
Filterable widget issue with enter key
https://api.jquerymobile.com/filterable/
这个小部件的实现似乎有问题,如果你在文本字段中输入,然后按 enter 没有任何反应,但你的下一个按键没有任何效果。例如:
- 关注文本字段
- 按 a('a' 出现在字段中)
- 按回车键(无变化)
- 按一个(不变)
- 按 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
https://api.jquerymobile.com/filterable/
这个小部件的实现似乎有问题,如果你在文本字段中输入,然后按 enter 没有任何反应,但你的下一个按键没有任何效果。例如:
- 关注文本字段
- 按 a('a' 出现在字段中)
- 按回车键(无变化)
- 按一个(不变)
- 按 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