我有一个primefaces autocomplete元素,除了一个thig之外它很有用。问题是,当我输入一个有效的文本(可以映射到后面的数据)但我没有从命题中选择元素,并且不按Tab键或输入时,没有任何反应。
因此,我输入一个值并单击另一个字段,未选择该元素并且验证失败。但是,我不希望用户强制显式选择项目。
我的想法是,我将一个onchange监听器放入input元素并触发其中的primefaces itemSelect事件。但我不知道怎么做,如果有可能的话。
或许还有其他解决方案? 提前谢谢!
答案 0 :(得分:0)
我找到了一种方法,虽然它可能不是最美丽和最简单的方法。 也许它有助于某人...
这是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都正确执行。