代码之家  ›  专栏  ›  技术社区  ›  Rajesh Bhat

如何使用脚本禁用/启用HTML中的范围控件?

  •  0
  • Rajesh Bhat  · 技术社区  · 6 年前

    我对html/jquery/javascript比较陌生。我在下面的脚本中单击了一个按钮,禁用了范围控制。如果第二次单击按钮,我需要重新启用范围控制。那么,如何检查范围控制是禁用还是启用?

    $(":button.range").click(function(){
        $(this).parent().parent().find("input[type='range']:visible:first").attr("disabled","disabed");
    });
    
    4 回复  |  直到 6 年前
        1
  •  1
  •   guneraykut    6 年前

    您可以这样做:

    $(":button.range").click(function(){
       let status = $(this).parent().parent().find("input[type='range']:visible:first").prop('disabled');
       if(status === true){
          $(this).parent().parent().find("input[type='range']:visible:first").prop('disabled',false);
       }else{
          $(this).parent().parent().find("input[type='range']:visible:first").prop('disabled',true);
       }
    });  
    
        2
  •  1
  •   Sunil    6 年前

    您可以使用下面的jquery来了解是否禁用了输入范围控制。

     if ($(this).parent().parent().find("input[type='range']").prop("disabled") === true) {
        //write your code for disabled range control
    }
    

    如果要启用相同的控件,请使用下面的jquery。

    $(this).parent().parent().find("input[type='range']").prop("disabled", false);
    
        3
  •  1
  •   dcangulo    6 年前

    如果您只想切换它,可以使用下面的脚本:

    $(":button.range").click(function(){
       let status = $(this).parent().parent().find("input[type='range']:visible:first").prop('disabled');
    
       $(this).parent().parent().find("input[type='range']:visible:first").prop('disabled', !status);
    });  
    

    如果是 true 然后它将设置为 false 反之亦然。

        4
  •  0
  •   d-h-e    6 年前

    你可以使用 toggleAttribute() -gt; https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute

    我的示例使用普通的javascript,但我认为您也可以将它与jquery示例一起使用。

    $(":button.range").click(function(){
        $(this).parent().parent().find("input[type='range']:visible:first").toggleAttribute("disabled");
    });
    

    const toggleButton = document.getElementsByClassName('toggle')[0];
    const rangeSlider = document.getElementById('start');
    
    const toggleRange = () => {
      const status = rangeSlider.toggleAttribute('disabled');
      console.log(status);
    };
    
    toggleButton.addEventListener('click', toggleRange);
    <div>
      <input type="range" id="start" name="volume" min="0" max="11">
      <label for="volume">Volume</label>
    </div>
    <button class="toggle">toggle</button>