【问题标题】:trigger itemSelect event on Primefaces autocomplete在 Primefaces 自动完成上触发 itemSelect 事件
【发布时间】:2017-03-13 10:38:27
【问题描述】:
我有一个 primefaces 自动完成元素,除了一个之外,它的效果很好。问题是当我输入一个有效的文本(可以映射到后面的数据)但我没有从命题中选择元素,也没有按 Tab 或 Enter 键时,什么也没有发生。
所以我输入一个值并单击另一个字段,未选择该元素并且验证失败。但是,我不希望用户强制明确选择一个项目。
我的想法是,我将一个 onchange 侦听器放在输入元素上并触发其中的 primefaces itemSelect 事件。但我不知道该怎么做,如果可能的话。
或者也许还有其他解决方案?
提前致谢!
【问题讨论】:
标签:
primefaces
autocomplete
【解决方案1】:
我找到了一种方法,虽然它可能不是最漂亮和最简单的方法。
也许它可以帮助某人......
这是针对 primefaces (5.3) 的特定解决方案,但它也应该适用于其他版本。
$('#form\\:txtAutoComplete_input').val('Foo');
$('#form\\:txtAutoComplete_input').trigger('keydown');
$('#form\\:txtAutoComplete_input').trigger('input');
$('#form\\:txtAutoComplete_panel .ui-autocomplete-item').trigger('click');
由于某种原因,在将值输入到输入字段后,您必须按顺序触发 keydown 和 input 事件。在这些事件之后,自动完成列表显示匹配值。在那里你必须触发点击某个元素,所以所有支持 bean 的东西都被正确执行。