在页面加载的下拉列表中将动态值设置为默认值

时间:2012-05-16 14:16:46

标签: javascript html salesforce visualforce

我有一个页面,为每个用户加载一个不同的值,为了获得这个值,我使用了一个visualforce标记,因为它在Salesforce中运行。我只有2个选项,我给用户选择一个选项,但我已经知道该选项的值对于打开页面的用户是什么,所以我想预先选择该值并给他们选择更改它。

我目前正在这样做,问题是这会创建两次相同的选项并且它看起来不太好但它预先选择了正确的值,问题是

如何在不创建两次相同选项的情况下预先选择正确的值?

 <select id="product" name="liveagent.prechat:Product" style="width:220px" tabindex="5">

                    <option selected="selected">{!$User.Product__c}</option>
                    <option value="Product 1">Product 1</option>
                    <option value="Product 2">Product 2</option>

 </select>

//请记住{!$ User.Product__c}可以是产品1或产品2

提前致谢!

1 个答案:

答案 0 :(得分:0)

可能有更好的方法,但您可能想尝试一下:

<apex:variable var="SelectedProduct" value="{!IF($User.Product__c=='Product 1','Product 1','Product 2')}" />
<apex:variable var="OtherProduct" value="{!IF($User.Product__c=='Product 2','Product 1','Product 2')}" />

<select id="product" name="liveagent.prechat:Product" style="width:220px" tabindex="5">
    <option value="{!SelectedProduct}" selected="selected" >{!SelectedProduct}</option>
    <option value="{!OtherProduct}" >{!OtherProduct}</option>
</select>

以下是对逻辑的一般解释:

  • 如果User.Product__c是“产品1”,则将“产品1”设置为SelectedProduct。由于User.Product__c不是“产品2”,因此请将“产品2”设为OtherProduct
  • 如果User.Product__c不是“产品1”,请将“产品2”设为SelectedProduct。由于User.Product__c是“产品2”,因此请将“产品1”设置为OtherProduct

当然,如果您需要两个以上的选择选项,这种方法会变得更加复杂。

希望有所帮助!