【问题标题】:How to hide elements in dropdownlist with javascript如何使用javascript隐藏下拉列表中的元素
【发布时间】: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())。如果您想隐藏&lt;select&gt; 中除第一个选项之外的所有选项,只需$('#GenderId option:not(:first)').hide(); 并显示所有$('#GenderId option').show();。而正确的用法是$('#FirstName').prop('readonly', true); 为什么@Html.LabelFor(m =&gt; m.GenderId)GenderName 相关联?

标签: jquery html asp.net asp.net-mvc kendo-dropdown


【解决方案1】:

使用此代码$('#GenderId').eq(0).hide()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    相关资源
    最近更新 更多