这是我的cfselect
:
<cfselect
name="UrgencyId"
query="GetUrgencies"
value="id"
display="Urgency"
selected="#issue.UrgencyId#">
</cfselect>
除了我不知道如何根据变量值禁用它之外,它运行良好。
如果我这样做,则会显示已停用:
<cfselect
name="UrgencyId"
query="GetUrgencies"
value="id"
display="Urgency"
selected="#issue.UrgencyId#"
disabled="disabled">
</cfselect>
但是当我尝试添加cfif时,会发生错误(好吧,我看到布局错误):
<cfselect
name="UrgencyId"
query="GetUrgencies"
value="id"
display="Urgency"
selected="#issue.UrgencyId#"
<cfif true>disabled="disabled"</cfif>>
</cfselect>
好的,我尝试使用变量:
<cfset dsbl="disabled='disabled'">
<cfselect
name="UrgencyId"
query="GetUrgencies"
value="id"
display="Urgency"
selected="#issue.UrgencyId#"
#dsbl#>
</cfselect>
并收到错误:
Invalid CFML construct found on line 47 at column 139.
ColdFusion was looking at the following text:
#
我已经读过cfselect
具有enabled
属性,该属性与disabled
HTML属性相反。所以我尝试了这个:
<cfselect enabled="no">
<cfselect enabled="false">
<cfselect enabled=no>
<cfselect enabled=false>
所有这些都没有禁用我的下拉列表。
答案 0 :(得分:3)
我强烈建议不要使用cfform
,因为它往往会带来更多弊大于利,据说你可以使用attributeCollection
来实现这一点。
<cfset stSelect = {
name = 'UrgencyId',
query = 'GetUrgencies',
value = 'id',
display = 'Urgency'
} />
<cfif boxShouldBeDisabled>
<cfset stSelect.disabled = 'disabled' />
</cfif>
<cfselect attributeCollection="#stSelect#">
</cfselect>
您没有指定ColdFusion版本,但上述代码应适用于CF8或更高版本,并在CF10上进行了测试。
不使用cfform
代码看起来像。它绝对不是那么干净,但它使你不能使用cfform
<select name="UrgencyId">
<cfloop query="GetUrgencies">
<option value="#GetUrgencies.id#"<cfif issue.UrgencyID EQ GetUrgencies.id> selected="selected"</cfif><cfif shouldbeDisabled> disabled="disabled"</cfif>>#GetUrgencies.Urgency#</option>
</cfloop>
</select>