2013-04-23 186 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