可以通过 onValueChanged 检查挂毯文本字段
Can check tapestry textfield via onValueChanged
我正在处理一个 Tapestry 5.4 项目,我应该在其中收听输入字段(文本字段)Tapestry 元素的变化。是否可以像在 select dom 元素(例如:http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/select1)上那样在文本字段上创建 onValueChanged?
我试图在文本字段上制作它,但没有成功。
或者你是如何解决挂毯中的这个问题的?我考虑过为此编写 js 模块......但那不是 "tapestry way".
先谢谢各位的解答!
正如您所注意到的,TextField
默认情况下不会触发更改事件。您可以创建一个 mixin,但是它被放置在一个元素上并根据特定的客户端事件触发事件。可能在请求结束时进行区域更新。
一个良好的开端是 this link,它创建了一个完全可以做到这一点的组件。您传递有关要收听的内容、要触发的事件以及要更新的区域的客户端事件。
虽然这有点过时,但您确实可以将其转换为 js 模块,使用 JQuery
而不是 ProtoType
。 ZoneManager
在 t5/core/zone
模块中定义,您将调用 deferredZoneUpdate(zoneId, evtEndpoint)
.
关于此 mixin 的好处是它 "the Tapestry way" 并且可重复用于所有组件。例如,应该在单选按钮更改时发生的区域更新。也不能开箱即用。它使用这个 mixin。
我正在处理一个 Tapestry 5.4 项目,我应该在其中收听输入字段(文本字段)Tapestry 元素的变化。是否可以像在 select dom 元素(例如:http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/select1)上那样在文本字段上创建 onValueChanged? 我试图在文本字段上制作它,但没有成功。
或者你是如何解决挂毯中的这个问题的?我考虑过为此编写 js 模块......但那不是 "tapestry way".
先谢谢各位的解答!
TextField
默认情况下不会触发更改事件。您可以创建一个 mixin,但是它被放置在一个元素上并根据特定的客户端事件触发事件。可能在请求结束时进行区域更新。
一个良好的开端是 this link,它创建了一个完全可以做到这一点的组件。您传递有关要收听的内容、要触发的事件以及要更新的区域的客户端事件。
虽然这有点过时,但您确实可以将其转换为 js 模块,使用 JQuery
而不是 ProtoType
。 ZoneManager
在 t5/core/zone
模块中定义,您将调用 deferredZoneUpdate(zoneId, evtEndpoint)
.
关于此 mixin 的好处是它 "the Tapestry way" 并且可重复用于所有组件。例如,应该在单选按钮更改时发生的区域更新。也不能开箱即用。它使用这个 mixin。