2017-10-20 82 views
0

如何启用输入复选框,如果我检查复选框?如何在复选框中启用输入,如果我选中复选框? cuz它总是禁用当我检查输入类型复选框

当我检查输入类型的复选框时,它总是禁用。

function ckChange(ckType) { 
 
    var ckName = document.getElementsByName(ckType.name); 
 
    var checked = document.getElementById(ckType.id); 
 

 
    if (checked.checked) { 
 
    for (var i = 0; i < ckName.length; i++) { 
 

 
     if (!ckName[i].checked) { 
 
     ckName[i].disabled = true; 
 
     } else { 
 
     ckName[i].disabled = false; 
 
     } 
 
    } 
 
    } else { 
 
    for (var i = 0; i < ckName.length; i++) { 
 
     ckName[i].disabled = false; 
 
    } 
 
    } 
 
}
<input type="checkbox" placeholder="toBeReturn" name="progress" id="progress1" value="1" tabIndex="1" onClick="ckChange(this)"> For use in showroom to be return on 
 
<input type="date" name="progress" id="progress3" placeholder="date"> 
 
<br/> 
 
<input type="checkbox" placeholder="OnLoan" name="progress" id="progress2" value="1" tabIndex="1" onClick="ckChange(this)"> On Loan 
 
<br/> 
 
<input type="checkbox" placeholder="Other" name="progress" id="progress6" value="1" tabIndex="1" onClick="ckChange(this)"> Other 
 
<input type="text" name="progress" id="progress3" placeholder="State the Purpose">

我需要帮助来完成我的项目,谢谢!

回答

0

只需切换“if”和“else”语句中的相应内容即可。

此外,如果您在未选中复选框的情况下加载页面,还可以在文本输入中添加“已禁用”以使其匹配。

function ckChange(ckType) { 
 
    var ckName = document.getElementsByName(ckType.name); 
 
    var checked = document.getElementById(ckType.id); 
 

 
    if (checked.checked) { 
 
    for (var i = 0; i < ckName.length; i++) { 
 
     ckName[i].disabled = false; 
 
    } 
 
    } else { 
 

 
    for (var i = 0; i < ckName.length; i++) { 
 
     if (!ckName[i].checked) { 
 
     ckName[i].disabled = true; 
 
     } else { 
 
     ckName[i].disabled = false; 
 
     } 
 
    } 
 
    } 
 
}
<th> 
 
    <input type="checkbox" placeholder="toBeReturn" name="progress" id="progress3" value="1" tabIndex="1" onClick="ckChange(this)"> For use in showroom to be return on <input type="date" name="progress" id="progress3" placeholder="date" disabled> 
 
</th>

0

我认为问题是,你“的”说法,“为”语句匹配所有的检查boxs包括您选中的,你需要从再排除,所以你可能会这样尝试:

function ckChange(ckType) { 
     var ckName = document.getElementsByName(ckType.name); 
     var checked = document.getElementById(ckType.id); 

     if (checked.checked) { 
      for (var i = 0; i < ckName.length; i++) { 
       if(ckName[id].id !==checked.id){ 
        ckName[i].disabled = false; 
       } 
      } 
     } else { 
      for (var i = 0; i < ckName.length; i++) { 
       if(ckName[id].id !==checked.id){ 
        if (!ckName[i].checked) { 
        ckName[i].disabled = true; 
        } else { 
         ckName[i].disabled = false; 
        } 
       } 
      } 
     } 
    } 
相关问题