【问题标题】:Hide div based on selected dropdown根据选定的下拉菜单隐藏 div
【发布时间】:2023-03-11 13:29:01
【问题描述】:

当您现在创建一个新页面时,此代码可以正常工作。选择下拉菜单将显示或隐藏标记装饰。问题出在编辑页面中,默认选择了 ID,如 Id 3 我希望用 3 装饰的 div 在页面加载时隐藏。我完全用 javascript 和 jquery 在海上。

<div class="form-group">
<label class="control-label col-md-2" for="ArticleCategoryId">Menu Category</label>
    <div class="col-md-10">
    <select class="chooseOption form-control" id="ArticleCategoryId" name="ArticleCategoryId">
    <option value="1">pages</option>
    <option value="2">about</option>
    <option selected="selected" value="3">project</option>
    <option value="4">gallery</option>
    <option value="5">news</option>
    <option value="6">events</option>
    <option value="7">FAQS</option>
    <option value="8">Jobs</option>
    <option value="9">Documents</option>
    <option value="10">Clients</option>
    </select>

 <div class="form-group ArticleCategoryId 3">
 <label class="control-label col-md-2" for="ArticleOnDate">Start Date</label>
     <div class="col-md-10">
    <input class="form-control text-box single-line" data-val="true" data-val-date="The field Start Date must be a date." id="ArticleOnDate" name="ArticleOnDate" type="datetime" value="" />
    <span class="field-validation-valid text-danger" data-valmsg-for="ArticleOnDate" data-valmsg-replace="true"></span>
                </div>
            </div>

            <div class="form-group ArticleCategoryId 1">
                <label class="control-label col-md-2" for="ArtilceOnTime">On Time</label>
                <div class="col-md-10">
                    <input class="form-control text-box single-line" id="ArtilceOnTime" name="ArtilceOnTime" type="text" value="" />
                    <span class="field-validation-valid text-danger" data-valmsg-for="ArtilceOnTime" data-valmsg-replace="true"></span>
                </div>
            </div>

下面是jquery sn-p

<script type="text/javascript">
jQuery(".optionName").hide();
jQuery("document").ready(function () {   /// have to wait till after the document loads to run these things
jQuery("select.chooseOption").change(function () {
jQuery("." + this.id).hide();
var thisValue = jQuery(this).val();
if (thisValue != "")
 jQuery("." + thisValue).show();
        });
    });
</script>

这是一个编辑页面,我希望 "&lt;div class="form-group ArticleCategoryId 3"&gt;....&lt;/div&gt; 在页面加载时隐藏,因为项目 ID 3 已被选中,但另一个应该显示。任何帮助将不胜感激

【问题讨论】:

    标签: javascript jquery forms model-view-controller


    【解决方案1】:

    给出诸如“ArticleCategoryId 1”之类的组件类是个坏主意。

    你可以有类似的东西

    <div class="form-group editable-category" data-category-id="1">
       <label class="control-label col-md-2" for="ArtilceOnTime">On Time</label>
       <div class="col-md-10">
          <input class="form-control text-box single-line" id="ArtilceOnTime" name="ArtilceOnTime" type="text" value="" />
          <span class="field-validation-valid text-danger" data-valmsg-for="ArtilceOnTime" data-valmsg-replace="true"></span>
       </div>
    </div>
    

    和css

    .editable-category{
      display:none;
    }
    
    .editable-category.active{
      display:block;
    }
    

    和js如下

    $(document).ready(function(){
      $('select.chooseOption').on('change',function(){
         var thisValue = $(this).find('option:selected').val();
         if(thisValue){
           $('.editable-category.active').removeClass('active');
           $('.editable-category[data-category-id="'+thisValue+'"]').addClass('active');
         }
      }).trigger('change');
    
    });
    

    【讨论】:

    • 谢谢,我不知道,但我可以使用我的代码添加多个 ID,它们都会像 ArticleCategoryId 1 3 4 5 一样响应我想知道您的代码是否可以实现这一点我刚刚尝试了 1 2 和它坏了
    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 2016-12-22
    相关资源
    最近更新 更多