如何使用位于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";