【发布时间】:2016-01-28 00:10:42
【问题描述】:
我想创建在开始时将被禁用或不可见的文本区域。 有一个下拉列表,在选择最后一个选项时,即其他,它应该启用或使文本区域可见并获取值并在提交时传递给控制器。
【问题讨论】:
-
new { disabled = "true"}
标签: c# jquery asp.net-mvc-4 model-view-controller
我想创建在开始时将被禁用或不可见的文本区域。 有一个下拉列表,在选择最后一个选项时,即其他,它应该启用或使文本区域可见并获取值并在提交时传递给控制器。
【问题讨论】:
new { disabled = "true"}
标签: c# jquery asp.net-mvc-4 model-view-controller
使用
@Html.TextArea("Name", null, new { disabled="disabled" })
为你:
<div>
@Html.TextArea("Name", null, new { disabled="true" })
@Html.DropDownList("switch", new List<SelectListItem>() {
new SelectListItem(){Text="Enable", Value="Enable"},
new SelectListItem(){Text="Disable", Value="Disable", Selected=true},
})
</div>
<script>
$(function ($) {
var dropDown = $("#switch");
var txtName = $("#Name");
dropDown.change(function () {
if (dropDown.val() === "Disable")
{
txtName.attr("disabled", true);
}
else {
txtName.removeAttr("disabled");
}
})
})(jQuery)
</script>
【讨论】:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>。在我的项目中它可以工作
您应该隐藏文本区域,而不仅仅是禁用它。你可以做的是添加 html :
@Html.TextArea("Text", null, new { @class="hiddenOptionArea", disabled="disabled" })
并应用类:
hiddenOptionArea {
display:none
}
另外你最好使用@Html.EditorFor 并为你的模型制作一个模板,这样你就可以在任何需要的地方重复使用你的html - 你可以在这里找到链接:http://rachelappel.com/razor/partial-views-in-asp-net-mvc-3-w-the-razor-view-engine/
【讨论】:
你应该尝试这个来创建禁用的 textArea
@Html.TextAreaFor(m => m.property, new { id = "txtId", disabled = "disabled" })
【讨论】: