1

以下は、ドロップダウンリストが生成されるコードです (View 内)。

@Html.DropDownList("feeTypes", null, new { @disabled = false })

上記の行は、false を true に変更すると正常に動作しますが、false に設定すると無効になります (つまり、true または false を入力するたびにドロップダウンリストが常に無効になります)

上記の状況はなぜ起こるのでしょうか?

私が実際にやりたいことは、プログラムで有効または無効にできるドロップダウンリストを作成することです.これを達成する他の方法はありますか?

4

7 に答える 7

5

disabled プロパティは、値に関係なく、存在する場合は無効になります。このため、かみそりで条件付きになります。

@if(disabled){
    Html.DropDownList("feeTypes", null, new { @disabled = false })
}
else{
    Html.DropDownList("feeTypes", null)
}
于 2013-10-22T15:11:16.257 に答える
2

次のようにする必要があります。

@Html.DropDownList("feeTypes", null, new { @disabled = "disabled" })

ドロップダウンを有効にしたい場合はdisabled、そこに属性をまったく入れたくない場合は、次のように入力します。

@Html.DropDownList("feeTypes", null)

2 つを切り替えられるようにしたい場合は、JavaScript/jQuery の使用を検討してください。

于 2013-10-22T15:09:12.820 に答える
2

「disabled = false」は一種の冗長です。結果のマークアップでは、要素が無効にされないdisabledようにするには、属性をまったく必要としません。例えば:

無効な要素:

@Html.DropDownList("feeTypes", null, new { @disabled = true })

無効化されていない要素:

@Html.DropDownList("feeTypes")

「これは無効ではありません」と指定する HTML マークアップはありません。disabledむしろ、属性を指定するまで、要素はデフォルトでは無効になりません。

于 2013-10-22T15:12:11.347 に答える
1

disabled再度有効にする場合は、属性を削除してください。なんてことはありませんdisabled="enabled"。マークアップのようなものでさえ<input type="text" disabled />、最新のブラウザーでは入力を無効にします。

詳細については、html5 リファレンスを参照してください。

于 2013-10-22T15:15:20.363 に答える