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 を追加しようとすると、エラーが発生します (OK、レイアウトが間違っていることがわかります)。

<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:
#

HTML 属性とは反対の動作をcfselectする属性があることを読みました。だから私はこれを試しました:enableddisabled

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

これらすべてが私のドロップダウンを無効にしませんでした。

4

1 に答える 1

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