我想创建一个新组件 EditableLabel。(有 AjaxEditableLabel,但我不喜欢它的行为方式 - 来回切换<span>
。<input>
)
我希望它支持 AJAX - 至少 onchange。但是用户应该能够忽略 AJAX。理想情况下,他会通过(不)添加一个Behavior
.
我的实现是基于 CSS 的——它一直是一个输入,只是改变它的外观。这是通过 JavaScript 完成的,使其也可以在没有 AJAX 的情况下使用。
到目前为止,我已经尝试过
在 onRequest() 中使用
AbstractAjaxBehavior
withrequestCycle.scheduleRequestHandlerAfterCurrent(new TextRequestHandler("text/plain", "UTF-8", ret));
,文本字段会value
在适当的时候发送它(输入按下,焦点丢失,...)这里的问题是我不能使用 AjaxRequestTarget。这种方法更适用于简单的服务器-客户端通信,例如自动完成。
简单地使用
TextField
withAjaxFormComponentUpdatingBehavior("update")
。问题是它与我的 JavaScript 事件处理程序发生冲突。
什么是正确的方法?我假设有某种方法我应该在 wicket 中编写 javascript 事件处理程序,因此它们不会根据服务器响应进行 CSS 更改(即不重新渲染服务器发送的内容),但 Wicket 会生成 JS,以便事件不会发生冲突。
欢迎任何有关此主题的示例。