日期:2014-05-17  浏览次数:20450 次

白痴的js控制disabled问题.
各位大神,我想在这个多选里实现一个如果不选BP JEPS,就不能选BP JEPS Avec un UCC 或者BP JEPS Avec un US.目前多选的代码是这样,请问js里的ChangeStatut()要咋写呢?
for($i=0;$i<count($_post));$i++){
 echo " <input type=\"checkbox\" name=\"$i.diplome[]\"  value=\"BPJEPS\" onClick=\"ChangeStatut()\">BP JEPS<br><br>";     
             echo " <input type=\"checkbox\" name=\"$i.diplome[]\"  value=\"BPJEPSucc\" disabled >BP JEPS Avec un UCC<br><br>";    
              echo " <input type=\"checkbox\" name=\"$i.diplome[]\"  value=\"BPJEPScs\" disabled >BP JEPS Avec un CS<br><br>";    
}
**************************************************************
我写了好几个都不对.主要是弄不好那个for,请问???处要如何写啊,谢谢各位了:

function ChangeStatut() {
if(???.checked == true) {???.validation.disabled = false }
if(???.checked == false) {???.validation.disabled = true }

}

------------------------------------
PS:在转交页后,需要这样写$diplome=$_POST[$i."_diplome"];才能得到参数的.

------解决方案--------------------
可以这样写
<script>
function ChangeStatut(e) {
  var tags = document.getElementsByName(e.name);
  for(var i=1; i<tags.length; i++) tags[i].disabled = ! e.checked;
}
</script>

<?php
for($i=0;$i<4;$i++){
 echo " <input type=\"checkbox\" name=\"$i.diplome[]\"  value=\"BPJEPS\" onClick=\"ChangeStatut(this)\">BP JEPS<br><br>";     
             echo " <input type=\"checkbox\" name=\"$i.diplome[]\"  value=\"BPJEPSucc\" disabled >BP JEPS Avec un UCC<br><br>";    
              echo " <input type=\"checkbox\" name=\"$i.diplome[]\"  value=\"BPJEPScs\" disabled >BP JEPS Avec un CS<br><br>";    
}