【问题标题】:How to copy a text field in PrimeFaces using p:ajax?如何使用 p:ajax 在 PrimeFaces 中复制文本字段?
【发布时间】:2014-07-26 08:21:04
【问题描述】:

嗨,在我的申请中,我有两个块,一个在当前地址,另一个是永久地址。

如果我的当前地址和永久地址相同,我需要将当前地址字段复制到永久地址字段。

我已在此处附上代码

<h:outputText value="#{msg['elicense.examinationform.address.presentaddressline1']}" />
<p:inputText id="presentaddress1" value="#{personalBean.presentAddressLine1}" label="Present Address Line1" />
<p:watermark for="presentaddress1" value="Present Address Line1" id="presentaddressdata1"></p:watermark>


<h:outputText value="#{msg['elicense.examinationform.address.copy']}" />
<p:selectBooleanCheckbox value="#{examinationFormBean.copyAddress}" label="addresscopy" />
<p:spacer></p:spacer>

<h:outputText value="#{msg['elicense.examinationform.address.permanentline1']}" />
<p:inputText id="address1" value="#{personalBean.permanentAddressLine1}" label="Permanent Address Line1" />

我已经更新了我的代码。当我使用 p:ajax 检查复选框时,我需要将presentAddressLine1 值复制到permanentAddressLine1。请帮帮我

【问题讨论】:

  • 到目前为止你尝试过什么?请仅提供您的案例所需的代码,您有很多不相关的代码。
  • 使用它我需要将我现在的地址字段复制到永久地址字段。当用户选中复选框时,它会将当前地址复制到永久地址。
  • 由于您是 StackOverflow 的新手,请记住,您可以编辑问题以更改代码,而不是将其作为评论发布。
  • 我已经更新了我的代码。请看看并帮助我

标签: jsf primefaces primefaces-extensions


【解决方案1】:

这是在p:selectBooleanCheckBox 组件被点击时发送Ajax 请求的问题。这里有一个基本的SSCCE

@ManagedBean
@ViewScoped
public class Bean implements Serializable {

    private String address1;
    private String address2;
    private boolean copyAdress;

    public String getAddress1() {
        return address1;
    }

    public String getAddress2() {
        return address2;
    }

    public boolean isCopyAdress() {
        return copyAdress;
    }

    public void listener() {
        if (copyAdress) {
            address2 = address1;
        } else {
            address2 = "";
        }
    }

    public void setAddress1(String address1) {
        this.address1 = address1;
    }

    public void setAddress2(String address2) {
        this.address2 = address2;
    }

    public void setCopyAdress(boolean copyAdress) {
        this.copyAdress = copyAdress;
    }

}
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui">
<h:head />
<h:body>
    <h:form>
        <p:inputText value="#{bean.address1}" />
        <p:inputText id="add2" value="#{bean.address2}" />
        <p:selectBooleanCheckbox value="#{bean.copyAdress}">
            <p:ajax listener="#{bean.listener}" update="add2" process="@form" />
        </p:selectBooleanCheckbox>
    </h:form>
</h:body>
</html>

p:ajax 指定了一个侦听器,其中包含我们要在服务器端调用的方法。我们会将整个表单发送给处理(这样,地址的当前值在执行侦听器之前设置)并且在请求之后要更新的组件必须是附加到第二个地址的输入,这是我们想要的将值复制到。

【讨论】:

  • 感谢 Xtreme Biker。我已经实现了您的代码,并且运行良好。再次感谢
  • @ChandanSarma 不客气。由于您是 SO 的新手,请记住,您可以单击左侧的复选标记将答案标记为正确和/或如果您认为它有用,请对其进行投票。问候
猜你喜欢
  • 2011-08-20
  • 2012-07-26
  • 2014-11-25
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
相关资源
最近更新 更多