【问题标题】:Javascript Enabled input type when checkbox checked and disable when checkbox unchecked选中复选框时启用Javascript输入类型,未选中复选框时禁用输入类型
【发布时间】:2016-04-16 06:32:25
【问题描述】:

我的 javascript 在这里:

function enable(id) {
        var i = (document.getElementById('haha').checked);

        if(i= true) {
        document.getElementById("nama_"+id).disabled= false;
        document.getElementById("ket_"+id).disabled= false;
        }else{
            document.getElementById("nama_"+id).disabled= true;
        document.getElementById("ket_"+id).disabled= true;
        }
        }

当我选中复选框时,文本框将启用,但是当我取消选中时,该文本框仍然启用,我希望在取消选中后禁用此文本框。我该如何解决这个问题?

【问题讨论】:

    标签: javascript checkbox


    【解决方案1】:

    =赋值(设置变量的值),所以if (i = true) 设置 itrue 然后分支到@987654325 @ 堵塞。要进行比较,通常您会使用=====,但对于布尔值,这从来没有必要;直接检查值即可:

    if (i) {
        // Enable it
    } else {
        // Disable it
    }
    

    这个的情况下,你可以直接使用i

    document.getElementById("nama_"+id).disabled = !i;
    document.getElementById("ket_"+id).disabled = !i;
    

    您的checked 支票周围也不需要()

    我可能会这样做:

    function enable(id) {
        var disabled = !document.getElementById('haha').checked;
        document.getElementById("nama_"+id).disabled = disabled;
        document.getElementById("ket_"+id).disabled = disabled;
    }
    

    在那里,我获取复选框的值并将其反转,然后将其用作其他输入上的 disabled 标志。我会这样做,因为它很好且易于调试,当我单步执行代码时,我可以在调试器中轻松看到 disabled 值。

    有些人真的非常喜欢用一种表达方式做事。 (我认为这被高估了。)他们可能会这样做:

    function enable(id) {
        document.getElementById("nama_"+id).disabled =
            document.getElementById("ket_"+id).disabled =
                !document.getElementById('haha').checked;
    }
    

    ...因为赋值的结果就是被赋值的值。

    【讨论】:

      【解决方案2】:
      function chkBox(obj) {
          console.log(obj);
          $(obj).parents("tr").find("input[type='number']").prop('disabled', !$(obj).is(":checked"));
          $(obj).parents("tr").find("input[type='hidden']").prop('disabled', !$(obj).is(":checked"));
      }
      

      调用函数并传递这个。

      onclick="chkBox(this)" 
      

      【讨论】:

        猜你喜欢
        • 2018-01-09
        • 1970-01-01
        • 2018-04-01
        • 2015-09-28
        • 1970-01-01
        • 1970-01-01
        • 2016-06-27
        • 2020-01-30
        • 2022-11-25
        相关资源
        最近更新 更多