【发布时间】:2015-04-15 07:30:06
【问题描述】:
我在从下拉列表中隐藏元素时遇到问题。 我在该下拉列表中有 3 个项目: “未知”, “女性”, “男性” 当我单击其他下拉列表 personTypeCode = "legal"
时,我只想显示“未知”这个我试过了,还是不行
changeIDTypeVisibility: function () {
personTypeCode = $("#PersonTypeCode").val();
if (personTypeCode === "legal") {
$('#FirstName').attr('readonly', 'readonly');
// $('#LastName').attr('readonly', 'readonly');
$('#MiddleName').attr('readonly', 'readonly');
$('#FatherName').attr('readonly', 'readonly');
$('#MotherName').attr('readonly', 'readonly');
document.getElementById('selectIdHere').selectedIndex = 0;
CRTool.PersonDetails.getGenderElements().each(function (index, element) {
$('#GenderId').showHideDropdownOptions('2', false);
});
}
else {
// natural
CRTool.PersonDetails.getGenderElements().each(function (index, element) {
$(element).show();
});
}
},
@Html.LabelFor(m => m.IsNatural)
@if( Model.CanSave )
{
@(Html.Kendo().DropDownListFor(m => m.PersonTypeCode)
.BindTo(new[] { new { Id = "natural", Name = Resx.PersonDetails.Natural }, new { Id = "legal", Name = Resx.PersonDetails.Legal } })
.DataTextField("Name")
.DataValueField("Id")
.Events(events => events.Change("CRTool.PersonDetails.changeIDTypeVisibility")))
}
else
@if( Model.CanSave )
{
@Html.LabelFor(m => m.GenderId)
@(Html.Kendo().DropDownListFor(m => m.GenderId)
.BindTo(Model.GenderTypes)
.DataTextField("Name")
.DataValueField("Id")
)
}
else
{
if(Model.IsNatural){
@Html.LabelFor(m => m.GenderId)
<span class="readonly">@Html.DisplayDashFor(m => m.GenderName)</span>
}
@Html.LabelFor(m => m.IsNatural)
@if( Model.CanSave )
{
@(Html.Kendo().DropDownListFor(m => m.PersonTypeCode)
.BindTo(new[] { new { Id = "natural", Name = Resx.PersonDetails.Natural }, new { Id = "legal", Name = Resx.PersonDetails.Legal } })
.DataTextField("Name")
.DataValueField("Id")
.Events(events => events.Change("CRTool.PersonDetails.changeIDTypeVisibility")
)
)
}
@if( Model.CanSave )
{
@Html.LabelFor(m => m.GenderId)
@(Html.Kendo().DropDownListFor(m => m.GenderId)
.BindTo(Model.GenderTypes)
.DataTextField("Name")
.DataValueField("Id")
)
}
else
{
if(Model.IsNatural){
@Html.LabelFor(m => m.GenderId)
<span class="readonly">@Html.DisplayDashFor(m => m.GenderName)</span>
}
【问题讨论】:
-
请也发布您的 HTML 代码
-
我编辑了帖子,看看它
-
您似乎重复了一些代码。
-
嗯,对我来说它看起来不错,我不知道,也许 html 是重复的。有什么解决办法吗?
-
问题中的代码没有任何“好”之处。最后一个块似乎是上面代码的重复。您还没有显示您引用的任何函数(例如
getGenderElements()、showHideDropdownOptions())。如果您想隐藏<select>中除第一个选项之外的所有选项,只需$('#GenderId option:not(:first)').hide();并显示所有$('#GenderId option').show();。而正确的用法是$('#FirstName').prop('readonly', true);为什么@Html.LabelFor(m => m.GenderId)与GenderName相关联?
标签: jquery html asp.net asp.net-mvc kendo-dropdown