1

这是我的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有一个与HTML 属性enabled相反的属性。disabled所以我尝试了这个:

<cfselect enabled="no">
<cfselect enabled="false">
<cfselect enabled=no>
<cfselect enabled=false>

所有这些并没有禁用我的下拉菜单。

4

1 回答 1

3

我强烈建议不要使用cfform它,因为它往往弊大于利,据说您可以使用 anattributeCollection来使其正常工作。

<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>
于 2013-08-03T18:15:01.860 回答