ColdFusion:来自变量的cfselect和disabled属性

时间:2013-08-03 14:54:02

标签: select coldfusion disabled-control

这是我的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>

所有这些都没有禁用我的下拉列表。

1 个答案:

答案 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>