javascript - Jquery - optgroup hide() 在单击之前不会刷新下拉列表

标签 javascript jquery

我试图根据从单选按钮中选择的值在下拉列表中隐藏 optgroup。一切正常,除了下拉列表不会立即刷新(它可能已经有之前的预选值,不管它属于哪个optgroup)。

$('input[id*="school_type"]').on("change",function(){
        if ($(this).is(':checked')) {
          var selectedVal=($(this).next().text()); 
          $("#id_school_sub_type > optgroup").hide(); 
          $('#id_school_sub_type > optgroup[label="'+selectedVal+'"]').show();
        }
    });

JS Fiddle

optgroup 仅在用户单击后续下拉列表时隐藏或显示。是否可以立即“刷新”它?

最佳答案

在隐藏之前删除该项目的选择:

$('input[id*="school_type"]').on("change",function(){
    if ($(this).is(':checked')) {
      var selectedVal=($(this).next().text()); // using next() so we can get the verbose value from the <span> next to <input>
      $("#id_school_sub_type").val('');
      $("#id_school_sub_type > optgroup").hide(); 
      $('#id_school_sub_type > optgroup[label="'+selectedVal+'"]').show();
    }
});

如果也想进行选择,请添加以下行:

$("#id_school_sub_type").val($('#id_school_sub_type optgroup[label="'+selectedVal+'"] option:first').val());

Fiddle

关于javascript - Jquery - optgroup hide() 在单击之前不会刷新下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44413118/

相关文章:

javascript - 在一行中制作两个div

javascript - 需要从父级清除 iframe 中的间隔,但它不起作用

javascript - 有没有办法限制 Summernote 中可用的段落样式?

jquery背景高度变化

javascript - 如何使用 Gulp 在 Node 中要求 jQuery?

javascript - Element.getElementByTag ("mytag")有时返回空

javascript - 消除数组 Javascript/AngularJS 中的重复项

javascript - 在 JavaScript 中压缩多个 if 语句

javascript - 如何根据点击从时间选择器字段中获取值?

javascript - 是否可以自动打开视频模式并仅在用户通过电子邮件中的链接访问页面时才开始播放?