2013-04-23 148 views
1

我可能在这里完全错误,但有没有办法在下拉菜单中使用<cfif>来动态选择下拉菜单的默认值?使用ColdFusion在下拉列表中动态设置默认值?

我做了以下内容:

<select class="field select" id="TimeWithXYZYears" name="TimeWithXYZYears" > 

<option value="00" <cfif #thisInstance.responses.TimeWithXYZYears# eq 0>selected="selected"</cfif>>0</option> 
<option value="01" <cfif #thisInstance.responses.TimeWithXYZYears# eq 1>selected="selected"</cfif>>1</option> 
<option value="02" <cfif #thisInstance.responses.TimeWithXYZYears# eq 2>selected="selected"</cfif>>2</option> 
<option value="03" <cfif #thisInstance.responses.TimeWithXYZYears# eq 3>selected="selected"</cfif>>3</option> 
. 
. 
. 
</select> 

我已经从前面的页面调用组件的方法得到的TimeWithXYZYears的价值,我试图为之倾倒在页面上,它给我正确的值。

有没有办法做到这一点,而不写另一个功能?

+3

你的代码现在不工作的方式是什么?你正在采取的基本方法应该工作。 PS:你不需要你的IF语句中的##,只需要执行' – duncan 2013-04-23 11:15:36

+0

那么我删除了##,但下拉菜单并未显示所选的值, 。对于另一个类似的下拉应该是7年和8个月。但它显示0 0作为选定的值。 – amsko 2013-04-23 11:42:40

+1

这意味着thisInstance.responses.TimeWithXYZYears eq 0.这是从'组件方法'中获得的值吗?如果您向我们提供了更多代码,它可能有助于诊断问题。 – duncan 2013-04-23 12:03:04

回答

-3
<select class="field select" id="TimeWithXYZYears" name="TimeWithXYZYears" > 

    <option value="00" <cfif thisInstance.responses.TimeWithXYZYears eq "00">selected</cfif>>0</option> 
    <option value="01" <cfif thisInstance.responses.TimeWithXYZYears eq "01">selected</cfif>>1</option> 
    <option value="02" <cfif thisInstance.responses.TimeWithXYZYears eq "02">selected</cfif>>2</option> 
    <option value="03" <cfif thisInstance.responses.TimeWithXYZYears eq "03">selected</cfif>>3</option> 
    . 
    . 
    . 
    </select> 

您需要##的唯一时间是当您的变数正在输出或引号时。行情意味着它不是一个变量,没有引号意味着它是一个变量。这适用于大多数CFML标签。另外,SELECTED for HTML在很多情况下只是被选择。它不能正常工作的原因是因为你的价值与你的IF语句不一致。请参阅上面的正确用法。

+0

另外,如果我是你,我会循环你的选择,所以它会更容易处理。 – FuelieNetworks 2013-04-23 16:08:12

+0

当变量呈现给浏览器时,CF需要#。它与它是否在引号中无关。正如我们在上面的评论中所讨论的那样,'00'作为一个字符串的计算结果等于'0'作为一个整数,所以这个比较没有问题。 – 2013-04-23 16:39:50

+0

*它不能正常工作的原因是因为你的值与你的IF语句不一致* No.前导零将被忽略,因为CF [隐式地将'00','01',...'转换为数字] (http://help.adobe.com/zh_CN/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec09af4-7fc3.html)并执行**数字**比较。 (这是否是所需的结果是一个不同的问题..)如果您想考虑前导零,您必须执行[字符串比较](http://help.adobe.com/zh_CN/ColdFusion/9.0/CFMLRef/ WSc3ff6d0ea77859461172e0811cbec22c24-7f84.html)。 – Leigh 2013-04-23 17:09:12