2013-02-13 59 views
3

我有一个带有自动完成和zoneUpdater mixins的Textfield。基于类型值,我调用服务,该服务返回自动完成选择的新值。到现在为止还挺好。对我来说,大问题是自动完成选择不会提交选定的值。我想根据这个值更新不同的区域。现在它的工作方式是我必须提交整个表单并重新打开。但这不是客户想要的,它应该在不提交表单的情况下进行。有没有解决方案?谢谢。如何将自动完成选择值提交到Tapestry5中的Textfield?

+0

你使用Tapestry5自动完成(基于Prototype)还是Tapestry5-Jquery自动完成(基于JQuery)? – 2013-02-13 13:44:49

+0

嗨,对不起,我没有提到..我根本不使用jquery插件。 – MartinC 2013-02-13 14:35:42

+0

有没有人试图解决这个问题? – MartinC 2013-02-14 21:48:54

回答

4

我想根据此值更新不同的区域。

我已经试着与你的设置要做到这一点,实际上工作,但美中不足的是,我得到作为输入的更改事件的值是用户键入的内容(而不是用户从自动完成列表中选择什么)。

要从自动完成列表中选取值(尽管我没有尝试过),应该使用callback parameter of prototype's Autocompleter。考虑到为了做到这一点,你应该重写一个新的Autocompleter mixin,因为Tapestry的内置自动补全混合不遵守该回调参数。

我也检出了tapestry-jquery的Autocomplete mixin,尽管jquery的自动完成支持autocompleteselect event tapestry-jquery没有在它的实例化中处理它。

我没有检查雪尼尔套件自动完成混搭,这可能可以帮助你,我真的不知道。

据我所知,您应该根据其中任何一种开发自己的Autocomplete mixin,并添加选定的项目事件功能。

+0

谢谢,听起来很有希望,我会看看。 – MartinC 2013-02-18 08:11:48

+1

谢谢您将我指向Ajax.Autocompleter。最终,它不是回调,而是我使用过的UpdateElement钩子。现在它适用于我,我只需要编码。再次感谢。 – MartinC 2013-02-20 13:51:33

+0

不客气,真的很酷,你可以做你想做的。干杯。 – 2013-02-22 12:50:35