急,请问javascript中checkbox的问题?第一段代码:<table border=1 width=30 height=30 ><tr>
<TD id="C1" onclick="changeCheck(1)">1</TD>
<input style="display:none;" id="sselect1" checked>
</tr></table><SCRIPT language=JavaScript>
function changeCheck(obji)
{
document.getElementById("sselect"+obji).checked=document.getElementById("sselect"+obji).checked==true?false:true;
      document.getElementById("C"+obji).style.background=document.getElementById("sselect"+obji).checked==true?'url(red.gif) no-repeat 3px 2px':'';}
</SCRIPT>
--------------------------------------------------------------------------------
第二段代码:<table border=1 width=30 height=30><tr>
<TD id="C1" >1</TD>
<input style="display:none;" id="sselect1" checked>
</tr></table><SCRIPT language=JavaScript>
document.getElementById("C1").style.background=document.getElementById("sselect1").checked==true?'url(red.gif) no-repeat 3px 2px':'';
</SCRIPT>问题是:第一段代码的input不写type=checkbox ,然后点下去后可以显示出背景图片而第二段代码,我在input中也没写type=checkbox,为什么就不显示出背景图片,两断代码内容几乎相似,为什么第一段可以显示背景图,第二段代码就显示不出来?什么原因?而在火狐中就没有这样的问题?第二个问题:
<table border=1 width=30 height=30><tr>
<TD id="C1" >1</TD>
<input type=checkbox style="display:none;" id="sselect1" checked>
</tr></table><SCRIPT language=JavaScript>
document.getElementById("C1").style.background=document.getElementById("sselect1").checked==true?'url(red.gif) no-repeat 3px 2px;':'';
</SCRIPT>
为什么一给3px 2px后面跟个(;封号),在火狐中就不显示了,什么原因呢?在ie中就没问题?

解决方案 »

  1.   

    第一个问题:
    如果不加type=checkbox,input控件默认是text框,而checked属性默认是false的,当然我们可以在html标签里自己定义(html标签里定义无效,JS语句设值有效),但是这个时候并没有改变checked属性,LZ可以在
    document.getElementById("C1").style.background=document.getElementById("sselect1").checked==true?'url(red.gif) no-repeat 3px 2px':'';
    之前加一句
    alert(document.getElementById("sselect1").checked);//false
    所以背景色出不来第二个问题:
    那是因为IE的容错性比较好,FF严格校验