Coldfusion包括选择选定值的模板下拉列表

时间:2015-02-26 03:30:12

标签: coldfusion

我正在创建一个下拉菜单,并尝试自动选择“FL”。由于某种原因,它只是从数组中的第一个状态“AL”开始。有人可以告诉我哪里可能出错了吗?

HTML

<cfinclude template="dlstates.cfm">

dlstates.cfm

<cfset values = "AL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WV,WI,WY">
<cfset text = "AL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WV,WI,WY">

<cfoutput><select name="dlstate_#Add#" id="dlstate_#Add#" required selected="FL"></cfoutput>
    <cfloop index="x" from="1" to="#listLen(values)#">
        <cfset value = listGetAt(values, x)>
        <cfset label = listGetAt(text, x)>
        <cfoutput>

        <option value="#value#" <cfif isDefined("form.dlstate_#Add#") and form["dlstate_#Add#"] eq value> selected</cfif>>#label#</option> 
        </cfoutput>
    </cfloop>
</select>

1 个答案:

答案 0 :(得分:2)

selected中的<select>属性不会执行任何操作,它不属于该元素的属性之一。

为了选择佛罗里达州(FL),您可以在页面顶部附近添加以下内容(但在设置Add的值之后!):

<cfparam name="form.dlstate_#Add#" default="FL" />

顺便说一句,我建议您远离isDefined()并使用structKeyExists()代替。后者效率更高:

isDefined("form.dlstate_#Add#") ==> structKeyExists(form, "dlstate_#Add#")