私のかみそりのビューでは、ドロップダウンリストを使用します。このコントロールを無効にしたい(選択できない)。
私のコードは:
<div class="field-list">@Html.DropDownListFor(model => model.LinguaCodiceMadre, Model.LinguaMadreList, new{ @disabled = "disabled" })</div>
しかし、それは機能しません、私のコントロールは常に有効になっています。 HTMLページコードは次のとおりです。
<select name="LinguaCodiceMadre" id="LinguaCodiceMadre" data-val-length-max="10" data-val-length="The field LinguaCodiceMadre must be a string with a maximum length of 10." data-val="true">
<option></option>
<option value="sq">Albanian</option>
<option value="de">German</option>
<option value="en">English</option>
<option value="fr">French</option>
<option value="it">Italian</option>
<option value="pt">Portuguese</option>
<option value="ru">Russian</option>
<option value="es">Spanish</option>
</select>
「無効」属性なし。
私の本当の目標は、次のような条件付きでドロップダウンを有効/無効にすることです。
<div class="field-list">@Html.DropDownListFor(model => model.LinguaCodiceMadre, Model.LinguaMadreList, new{@disabled=Model.IsDisabled ? "disabled" : "false"})</div>
しかし、それは機能しません。
私は両方を試しました
new{@disabled=Model.IsDisabled ? "disabled" : "false"}
そして
new{disabled=Model.IsDisabled ? "disabled" : "false"}
しかし、何もありません。disabled属性はhtmlページにレンダリングされていません。
誰かアイデアがありますか?
私は自分の問題を解決しました:私のコードにjavascriptがありました(申し訳ありませんが、すぐには気づきませんでした)ドキュメントの準備ができたときに無効属性を削除しました。
私がしたことは:
public static class HtmlExtensions
{
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string optionText, bool canEdit)
{
if (canEdit) return html.DropDownListFor(expression, selectList, optionText);
return html.DropDownListFor(expression, selectList, optionText, new { @disabled = "disabled" });
}
}
<code><div class="field-list">@Html.DropDownListFor(model => model.LinguaCodiceMadre, Model.LinguaMadreList, "", Model.IsEnabled)</div></code>
これはうまくいきます!
ありがとう
ほんの少しの修正。これを試して
<div class="field-list">@Html.DropDownListFor(model => model.LinguaCodiceMadre, Model.LinguaMadreList, new{ disabled = "disabled" })</div>
これにより、ドロップダウンが確実に無効になります。
他の選択肢はjqueryを使用することです:
宣言@ Id後であなたのコントロールのためにこのようなことをしてください
$("#youid").prop("disabled", true);
最後にこれを試してください:これが機能しない場合は、あなたの側からの問題を意味します
<div class="field-list">@Html.DropDownListFor(model => model.LinguaCodiceMadre, Model.LinguaMadreList,String.Empty, new{ disabled = "disabled" })</div>
よろしく
まず、ユーザー入力に基づいてドロップダウンリストを有効/無効にする場合は、javascriptを使用してドロップダウンリストを有効/無効にする必要があります。
次のロジックを使用するJavascriptの場合:
$("#checkbox1").change(function () {
if (document.getElementById("checkbox1").checked == true) {
document.getElementById("DropDown1").disabled = true;
}
else {
document.getElementById("DropDown1").disabled = false;
}
});
これがFiddle私があなたのために試した、完璧に悩んでいるデモです