当前位置: 首页 > 知识库问答 >
问题:

PrimeFaces 3.2中的“onchange”不适用于selectOneMenu

齐思淼
2023-03-14

我的selectOneMenu没有触发onchange事件。这是代码:

 <p:selectOneMenu id="select_preset" 
                  value="#{JobMgmtBean.presetGroupName}" 
                  valueChangeListener="#{PFJobMgmtBean.PresetGroupChangeEvent}" 
                  onchange="submit();">
    <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
</p:selectOneMenu>

selectOneMenu填充得很好,我可以选择不同的值。但我希望在更改选择后,页面会被刷新,即重新创建支持bean(RequestScoped)(onchange=“submit();”)?但是,当selectOneMenu中的选择被更改时,什么都不会发生。

此外,不调用值change listener PresetGroupChangeEvent()。

我哪里出错了吗?

我使用的是Tomcat 7.0.25 MyFaces 2.1.6 PrimeFaces 3.2。

共有3个答案

吕飞翼
2023-03-14

这对我有用

<p:selectOneMenu id="select_preset" 
                  value="#{JobMgmtBean.presetGroupName}" 
                  valueChangeListener="#{PFJobMgmtBean.PresetGroupChangeEvent}">
        <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
        <p:ajax process="select_preset" partialSubmit="true" event="valueChange"  update="yourComponentName"/>
    </p:selectOneMenu>
唐修能
2023-03-14

为什么不使用p:ajax添加更新属性?我认为重新加载组件比刷新更好,也可以只重新加载所需的组件。但如果您仍然想刷新页面,也可以使用javascript

<p:selectOneMenu id="select_preset" value="#{JobMgmtBean.presetGroupName}" onchange="window.location.reload();">
    <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
</p:selectOneMenu>

并且只是为了更新必要的组件:

 <p:selectOneMenu id="select_preset" value="#{JobMgmtBean.presetGroupName}">
    <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
    <p:ajax event="change" update="@form" />
</p:selectOneMenu>
凌俊名
2023-03-14

尝试删除

onchange="submit();"

并添加

<p:ajax update="@this"/>

从你的p: selectOneMenu当你使用primeface

<p:selectOneMenu id="select_preset" 
              value="#{JobMgmtBean.presetGroupName}" 
              valueChangeListener="#{PFJobMgmtBean.PresetGroupChangeEvent}">
    <f:selectItems value="#{JobMgmtBean.presetGroupList}"/>
    <p:ajax update="@this"/>
</p:selectOneMenu>

检查您的侦听器签名(从大“P”开始?)

import javax.faces.event.ValueChangeEvent;
public void PresetGroupChangeEvent(ValueChangeEvent event) { }
 类似资料:
  • 问题内容: 我几乎是新来的。我正在尝试创建一个简单的编辑和创建蒙版。这是代码: Company类如下所示: 现在我的问题是,当我单击时,为什么不触发该事件。 在这一部分: 问题答案: 原因很简单,当您点击 它不是在组件上设置的事件,而是传递给组件并可以像在Company组件中一样访问的prop , 您需要做的是指定事件,并在Company组件中指定 作为prop传递给组件的函数可以通过任何名称传递

  • 我的GMAILIMAP代码在PHP从我的localhost工作得很好,但它不能从域工作。 我已完成以下项目: 1) 允许不太安全的应用登录2)在GMAIL帐户中启用IMAP 3)未启用双因素身份验证。4) 我也验证了帐户访问权限5)我还允许:http://www.google.com/accounts/DisplayUnlockCaptcha 可能是我在实时服务器上没有SSL的问题吗? 但我不断得

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 我正在尝试将angular2应用程序与rails api连接起来。 为了使用rails身份验证,我希望能够在两个域之间共享cookies。当我在angular应用程序中调用http GET时,我会返回一个带有预期设置cookie字段的响应,当我发送下一个GET请求时,cookie也会随之发送。然而,当我将第二个GET替换为一个POST时,它不是。对于两个调用,我都使用withCredentials

  • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。