如何使用位于dataTable的h:列中的h:selectboolean checkbox onclick方法来填充In



如何使用位于dataTable的h:列中的h:selectbooleancheckbox onclick方法,以便用该dataTable的一列的值填充InputText?

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:panelGrid columns="2" styleClass="formTable">
#{msgs.asunto} 
<h:panelGroup>
<p:inputText value="#{correo.asunto}"
           required="false"
           requiredMessage="#{msgs.formAlta_nombre_requiredMessage}"
           validatorMessage="#{msgs.formAlta_nombre_validatorMessage}"
           id="asunto">
<f:validateLength maximum="20"/>           
</p:inputText>
<h:message for="asunto"/>
</h:panelGroup>
#{msgs.cuerpo} 
<h:panelGroup>
<p:inputText value="#{correo.cuerpo}"
           required="false"
           requiredMessage="#{msgs.formAlta_apellidos_requiredMessage}"
           validatorMessage="#{msgs.formAlta_apellidos_validatorMessage}"
           id="apellidos">
<f:validateLength  maximum="40"/>           
</p:inputText>
<h:message for="cuerpo"/>
</h:panelGroup>
#{msgs.destinatario} 
<h:panelGroup>
<p:inputText required="false"
           id="destinatario">         
</p:inputText>
<h:message for="asunto"/>
</h:panelGroup>
</h:panelGrid>
<p:commandButton value="#{msgs.botonEnviar}" 
               action="#{controllerCorreo.salva}">            
 <f:ajax execute="@form" render="@form :form-pie"/>                   

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:commandLink rendered="#{controllerContacto.admincomprueba}"
    value="#{msgs.enlaceListadoPrivada}"
    action="#{controllerContacto.listado}" />
<h:commandLink value="#{msgs.enlaceListadoCompartida}"
    action="#{controllerContacto.listadoAgendaCompartida}" />
<h:dataTable var="contacto" value="#{controllerContacto.contactos}"
    border="1">
    <h:column>
        <f:facet name="header">#{msgs.tablaNombre}</f:facet>#{contacto.nombre}</h:column>
    <h:column>
        <f:facet name="header">#{msgs.tablaApellidos}</f:facet>#{contacto.apellidos}</h:column>
    <h:column>
        <f:facet name="header">#{msgs.tablaDireccion}</f:facet>#{contacto.direccion}</h:column>
    <h:column>
        <f:facet name="header">#{msgs.tablaCiudad}</f:facet>#{contacto.ciudad}</h:column>
    <h:column>
        <f:facet name="header">#{msgs.tablaEmail}</f:facet>#{contacto.email}</h:column>
    <h:column>
        <f:facet name="header">#{msgs.tablaBaja}</f:facet>
        <h:commandLink action="#{controllerContacto.baja(contacto)}"
            type="submit" value="#{msgs.enlaceBaja}" immediate="true">
            <f:ajax execute="@this" render="@form :form-pie" />
        </h:commandLink>
    </h:column>
    <h:column>
        <f:facet name="header">#{msgs.tablaEdit}</f:facet>
        <h:commandLink action="#{controllerContacto.edit()}" type="submit"
            value="#{msgs.enlaceEdit}" immediate="true">
            <f:ajax execute="@this" render="@form :form-pie" />
        </h:commandLink>
    </h:column>
    <h:column>
        <h:selectBooleanCheckbox id="check" value="#{contacto.check}"
            onclick="tobeCompleted" />
    </h:column>
</h:dataTable>
</ui:composition>

每次单击复选框时,我都想在名为"msgs.destinatario"的InputText中填充属于dataTable那一行的contacto.email值。

将ajax添加到复选框中。在其上运行一个侦听器方法,该方法操作destinatario输入字段的值,然后重新呈现表单中具有destinatari0值的部分。

这感觉很简单,我。

如果您只希望它发生在客户端,您也可以使用javascript做一些事情。在onclick属性中,调用一个处理输入字段的js函数,例如:document.getElementById("destinatario").value="new value";

最新更新