jquery - 选中复选框时启用下拉菜单

标签 jquery html laravel

我想使用复选框启用和禁用下拉列表。每个复选框都有下拉列表。 每次我选中复选框时,下拉菜单都会启用,但问题是所有下拉菜单都已启用。

这是我的 HTML

  @foreach($allergies as $aller)
               <select name="tolerance[]" class="tol" id="tol" disabled>
                      <option value="Low">Low</option>
                      <option value="Medium">Medium</option>
                      <option value="High">High</option>
                </select>
                      <input type="checkbox" class="allergies" id="allergies" name="allergen[]" value="{{$aller->allergen_id}}">
                      {{ $aller->allergen_name}}<br>
              @endforeach

这是我的 JQUERY

<script>
    $(document).ready(function(){
    $('.tol').attr('disabled', 'disabled');
    });

    $(document).ready(function(){

      var $checkBox = $('.allergies'),
        $select = $('.tol');

    $checkBox.on('change',function(e){
        if ($(this).is(':checked')){
            $select.removeAttr('disabled');
        }else{
           $select.attr('disabled','disabled');
        }
    });

    });
</script>

最佳答案

$(document).ready(function() {
  $('.tol').attr('disabled', 'disabled');

  var $checkBox = $('.allergies');

  $checkBox.on('change', function(e) {
    //get the previous element to us, which is the select
    var $select = $(this).prev();
    
    if (this.checked) {
      $select.removeAttr('disabled');
    } else {
      $select.attr('disabled', 'disabled');
    }
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="tolerance[]" class="tol" disabled>
                      <option value="Low">Low</option>
                      <option value="Medium">Medium</option>
                      <option value="High">High</option>
                </select>
<input type="checkbox" class="allergies" id="allergies" name="allergen[]" value="Pollen">Pollen<br>

<select name="tolerance[]" class="tol" disabled>
                      <option value="Low">Low</option>
                      <option value="Medium">Medium</option>
                      <option value="High">High</option>
                </select>
<input type="checkbox" class="allergies" id="allergies" name="allergen[]" value="Glue">Glue<br>

关于jquery - 选中复选框时启用下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47160791/

相关文章:

javascript - iOS 7 进入全屏模式(添加到主屏幕按钮)

javascript - 如何检查 p 类中的特定内容并使用 html 文件中的 javascript 基于该内容创建 if 语句?

php - MySQL枚举删除反斜杠

php - Laravel:有几个种子表属于使用工厂的关系

javascript - jQuery 和本地存储异常行为

javascript - TinyMCE 撤消操作不会触发更改事件

jquery - 内联列表菜单无法正常工作

html - 为什么在 Laravel 中我的背景图像之前加载了白页?

javascript - jQuery 中如何获取最近的前一个元素?

c# - 使用 jQuery 和 ASP.NET 提交表单