【问题标题】:how to make a checkbox enable/disable based on selection in multiple box如何根据多个框中的选择启用/禁用复选框
【发布时间】:2010-02-06 14:01:13
【问题描述】:

我在表单中有一个多选组合框和一个复选框。

我希望仅当用户从多选组合框中选择特定值时才启用该复选框。

这是否可以通过 javascript 或 jQuery 来实现。我已经在其他地方使用 jquery。

示例:http://jsbin.com/ipomu

以复选框开头的将被禁用。只有当用户点击选项 2 时才应该启用它

【问题讨论】:

    标签: javascript jquery html forms


    【解决方案1】:

    一个样本。您只需将要启用复选框的选项值添加到数组对象。在以下示例中,我启用了单击 2、3、5 和 7 选项的复选框。

    <script type="text/javascript">
    $(function(){
      var arrVal = [ "2","3", "5", "7" ];
    
      $("#combobox").change(function(){
        var valToCheck = String($(this).val());
    
        if ( jQuery.inArray(valToCheck,arrVal) == -1 )
        {
            $("#check").attr("disabled", "true");            
        }
        else
        {
            $("#check").removeAttr ( "disabled" );    
        }        
      });
    });
    </script>
    <select id="combobox" size="9" id="reasons" multiple="multiple">
        <option value="1">Option 1</option>
        <option value="2">Option 2</option>
        <option value="3">Option 3</option>
        <option value="4">Option 4</option>
        <option value="5">Option 5</option>
        <option value="6">Option 6</option>
        <option value="7">Option 7</option>
    </select>
    

    Working demo 以您为例。

    【讨论】:

      【解决方案2】:

      我使用正确的 jQuery 更新了您提供的 jsbin 链接,以实现所需的效果。

      http://jsbin.com/ipomu/2

      【讨论】:

      • 如果选项2和选项3需要更改怎么办
      • 你的意思是如果选项 2 和 3 都被选中,它会被激活?还是只有 1 个或其他?
      【解决方案3】:

      您可以通过 javascript 启用/禁用 html 元素:

      document.getElementById('<the id of your checkbox here>').disabled = true;
      

      因此,您必须添加多选组合框的 OnChange 事件,并在禁用/启用复选框时在某些函数中添加逻辑。 示例:

      <select onChange="myfunc(this)">
      

      ...

      <script>
      function myfunc(sel)
      {
      if (sel.selectedValue == "2")
          document.getElementById('<the id of your checkbox here>').disabled = true;
      }
      </script>
      

      【讨论】:

        【解决方案4】:

        最简单的,直接使用 Javascript,而不使用 jQuery,您可以将以下 onchange 属性添加到 select 元素(假设元素都被相同的表单包围):

        onchange="this.form['mycheck'].disabled = (this.value != 2)"
        

        如果它们不在同一个表单中,或者如果您不知道预期元素的名称,或者元素是动态创建的,.disabled = (this.value != 2) 将是相同的,但找到正确复选框的方法可能会有所不同。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-02
          • 2014-10-01
          相关资源
          最近更新 更多