首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >selectOneMenu ajax事件

selectOneMenu ajax事件
EN

Stack Overflow用户
提问于 2013-05-16 20:34:43
回答 4查看 129K关注 0票数 33

我使用一个可编辑的primefaces selectOneMenu来显示一些值。如果用户从列表中选择了一项,则应更新文本区。但是,如果用户在selectOneMenu中输入了某些内容,则不应更新文本区。

我想我可以用ajax事件解决这个问题。但是,我不知道在这里可以使用哪个事件。我只知道valueChange事件。是否还有其他事件,如onSelectonKeyUp

下面是我的代码:

代码语言:javascript
复制
<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}" />
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-07 17:21:32

PrimeFaces ajax事件有时文档非常少,因此在大多数情况下,您必须查看源代码并进行检查。

p:selectOneMenu支持更改事件:

代码语言:javascript
复制
<p:selectOneMenu ..>
    <p:ajax event="change" update="msgtext"
        listener="#{post.subjectSelectionChanged}" />
    <!--...-->
</p:selectOneMenu>

在签名中以AjaxBehaviorEvent作为参数触发监听器:

代码语言:javascript
复制
public void subjectSelectionChanged(final AjaxBehaviorEvent event)  {...}
票数 66
EN

Stack Overflow用户

发布于 2018-11-27 23:57:11

我更喜欢使用更方便的itemSelect事件。通过此事件,您可以在侦听器中使用org.primefaces.event.SelectEvent对象。

代码语言:javascript
复制
<p:selectOneMenu ...>
    <p:ajax event="itemSelect" 
        update="messages"
        listener="#{beanMB.onItemSelectedListener}"/>
</p:selectOneMenu>

使用这样的监听器:

代码语言:javascript
复制
public void onItemSelectedListener(SelectEvent event){
    MyItem selectedItem = (MyItem) event.getObject();
    //do something with selected value
}
票数 9
EN

Stack Overflow用户

发布于 2015-11-30 23:25:02

请注意,在selectOneMenu组件运行之前,页面不包含任何"required“属性为"true”的空组件。

如果使用像这样的组件

代码语言:javascript
复制
<p:inputText label="Nm:" id="id_name" value="#{ myHelper.name}" required="true"/>

然后,

代码语言:javascript
复制
<p:selectOneMenu .....></p:selectOneMenu>

并且忘记填写所需的组件,selectoneMenu的ajax listener无法执行。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16587585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档