加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

jsf – 引用selectOneRadio ajax

发布时间:2020-12-16 03:06:23 所属栏目:百科 来源:网络整理
导读:每次用户单击单选按钮时,我都试图显示验证消息. 这只有当我点击提交按钮时才有效,但是当我点击单选按钮时不会: h:form id="form" p:panel id="panel" ui:repeat value="#{questionsBean}" var="question" h:panelGrid columns="3" style="margin-bottom:10p
每次用户单击单选按钮时,我都试图显示验证消息.

这只有当我点击提交按钮时才有效,但是当我点击单选按钮时不会:

<h:form id="form">
        <p:panel id="panel">
            <ui:repeat value="#{questionsBean}" var="question">
                <h:panelGrid columns="3" style="margin-bottom:10px" cellpadding="5">
                    <h:outputText value="#{question.questionText}" />
                    <p:selectOneRadio id="question" value="#{question.response}"
                        validator="#{question.validate}" required="true">
                        <f:selectItem itemLabel="Yes" itemValue="Yes" />
                        <f:selectItem itemLabel="No" itemValue="No" />
                        <p:ajax update="msgQuestion" event="change"/>
                    </p:selectOneRadio>
                    <p:message for="question" id="msgQuestion" />
                </h:panelGrid>
            </ui:repeat>
            <p:commandButton id="btn" value="Save" update="panel" partialSubmit="true"/>
        </p:panel>
    </h:form>
当您想要单击是否单选按钮(或复选框)时,HTML DOM更改事件是错误的事件.您应该使用此事件的点击事件.

单选按钮(和复选框)的值基本上不会改变.它总是有同样的价值.问题是更多的是否将该值发送到服务器端.这是由通常由DOM点击事件触发的“已检查”状态确定的.

单选按钮/复选框上的更改事件的实际行为取决于所使用的web浏览器. IE浏览器中的行为特别不一致.它不仅取决于所使用的版本,而且还取决于所使用的渲染模式(怪异模式与标准模式).也许你实际上在测试时使用IE.

PrimeFaces< p:ajax>的默认事件类型(和标准JSF< f:ajax>),这是valueChange已经自动覆盖:

<p:ajax update="msgQuestion" event="valueChange" />

这将在文本输入和下拉列表中自动生成正确的更改事件处理程序,并在单选按钮和复选框中自动生成点击事件处理程序.

但是如上所述,这是默认事件类型.完全省略.

<p:ajax update="msgQuestion" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读