如何使用复选框隐藏一段字段?

时间:2012-02-07 06:25:47

标签: salesforce visualforce

如何使用visualforce页面中的复选框隐藏一部分字段?

2 个答案:

答案 0 :(得分:0)

我只是使用Javascript,或者更好的是jQuery。

答案 1 :(得分:0)

假设采用Salesforce方法(保持页面权重等),您可以执行以下操作:

<apex:inputCheckbox value="{!theBool}">
    <apex:actionSupport event="onChange" action="{!myAction}" rerender="theFieldsPanel"/>
</apex>

<apex:outputPanel id="theFieldsPanel">
    <apex:variable var="v" value="" rendered="{!theBool}">
        <apex:inputField value="{!someField"} rendered/>
        <!-- more fields etc. -->
    </apex:variable>
</apex:outputPanel>

请注意,我不在输出面板本身使用rendered属性,这是因为如果它没有呈现,那么它在页面中不存在,因此,不会产生好rerender目标!现在您只需要在控制器上执行一个简单的操作(如果需要,您可以在此处执行任何其他逻辑):

public Pagereference myAction()
{
    // any logic etc. goes here
    return null;
}

与javascript相反,以这种方式执行操作的好处是,您可以确保如果字段被隐藏,那么值将不会被发送回控制器以获取它们所绑定的变量。简单地用javascript隐藏东西不会产生相同的效果,所以说用户在其中一个字段中键入内容然后隐藏它们,无论他/她输入什么,它仍然会在相关的控制器变量中结束。