如题,下面贴出我的JS代码,是写在JS文件里的,在HTML里面通过事件来调用。
function chk(c,s,b){
var str = document.getElementById(s);
var btn = document.getElementByName(b);

if(document.getElementByName(c).checked == true){
btn.disabled = false;
str.style.display = "none";
}
else{
btn.disabled = true;
str.style.display = "block";
}
}下面是HTML中<input>标签的代码:
<input name="regChk" type="checkbox" checked="checked" value="agree"  class="chkBox" onclick="chk('regChk','RCheck','btnReg')" />注:Name为“regChk”的为input:checkbox(复选框)
    Id为“Rcheck”的为一个<span>区域
    Name为“btnReg”的为input:submit(提交按钮)
请问我的语法有错误吗?在HTML老是运行不了,望各位好心人不吝赐教,感激万分。

解决方案 »

  1.   

    var btn = document.getElementByName(b);
     没有这个是getElementsByName
      

  2.   


    嗯,修改过来了,已经可以判断IF语句了,
    str.style.display = "block";
    这条语句也可以执行了,但是其他的依然还是没反应,比如那个提交按钮不会变成disabled,
    我怎么点复选框也都是执行if语句当中的else语句块。
      

  3.   

    条件不成立所以就走else 了
    因为
    getElementsByName
    它返回的是一个集合
      

  4.   


    那可以改成用getElementById吗。
    我简单描述一下页面的布局:一个checkbox复选框、一个submit提交按钮和一个<span>区域(此区域用来提示操作。正常情况下为隐藏,即display=none)。我想实现的效果是,当点击复选框被勾选时,submit按钮的disabled为可用、<span>区域为隐藏;
    当点击复选框被取消勾选时,submit按钮的disabled为不可用、<span>区域为显示(即display=block)。请问我这样写语句有什么问题吗?或许有什么方法可以改进吗?谢谢。
      

  5.   

    好了,我修改好了,把getElementsByName改成getElementById,再在相应的元素上写入ID值就可以了。zsx841021,非常感谢你的提醒。呵呵,感激不尽。
      

  6.   

    var btn = document.getElementByName(b);这个方法是错的,应该为:
    var btn = document.getElementsByName(b);得以的是一个数组。