我正在使用可编辑的标号selectOneMenu显示一些值。如果用户从列表中选择一个项目,则应该更新一个文本区域。但是,如果用户在selectOneMenu中键入某些内容,则不应更新textarea。
我以为我可以用ajax事件来解决这个问题。但是,我不知道这里可以使用哪个事件。我只知道valueChange事件。是否有其他事件,如onSelect或onKeyUp?
这是我的代码:
<p:selectOneMenu id="betreff" style="width: 470px !important;" editable="true" value="#{post.aktNachricht.subject}"> <p:ajax event="valueChange" update="msgtext" listener="#{post.subjectSelectionChanged}" /> <f:selectItems value="#{post.subjectList}" /> </p:selectOneMenu> <p:inputTextarea style="width:550px;" rows="15" id="msgtext" value="#{post.aktNachricht.text}" />
原文ajax事件的记载非常差,所以在大多数情况下,你必须去源代码并检查一下自己。
p:selectOneMenu支持更改事件:
<p:selectOneMenu ..> <p:ajax event="change" update="msgtext" listener="#{post.subjectSelectionChanged}" /> <!--...--> </p:selectOneMenu>
它以AjaxBehavIoUrEvent作为参数在签名中触发侦听器:
public void subjectSelectionChanged(final AjaxBehaviorEvent event) {...}