2010-10-22 81 views
1

我在页面上有复选框,当您为每个复选框单击一个范围时,它会为每个复选框更改包含div的背景颜色。问题在于有人提交表单并转到下一页,然后单击后退按钮复选框保持选中状态,但div颜色恢复。有没有办法在页面加载时获取已检查框的div ID?检测复选框是否被选中,然后获取div ID

我有这样的检测由身体的onload选中的复选框,但不知道如何让DIV ID为他们每个人:

function detectchecked(){ 
    var count = 0; 
    var inputs = myform.getElementsByTagName('input'); 
    for (var i = 0, j = inputs.length; i<j; i++) { 
     var input = inputs[i]; 
     if (input.type && input.type === 'checkbox' && input.checked) { 
      alert(input); 
     } 
    } 
    } 

我的电流输入代码如下所示:

<div id="myform"> 
<div id="div4452101" style="float:left; width:194px; height:90px; border:1px solid #000; margin:2px;"> 
    <div class="resultphoto"> 
    <span onClick="checkem('4452101');"> 
    image goes here 
    </span> 
    </div> 
    <span onClick="checkem('4452101');"> 
    check this 
    </span> 
    <input type="checkbox" name="numbers[]" id="4452101" value="4452101" /> 
</div> 
</div> 
+0

您是否添加了条件if(复选框值是否存在){使用此样式}? – zod 2010-10-22 14:13:23

+0

我建议你使用jQuery,如果你被允许:)这将简化整个事情很多.. – Jack 2010-10-22 14:13:31

+0

是否有问题,当有人回到页面时,如果浏览器“后退”按钮被按下,它不起作用? – Shagglez 2010-10-22 14:33:59

回答

2

在这样的无代码和简单的问题中,不需要jQuery。

必须使用这样的代码:

function detectchecked(){ 
    var count = 0; 
    var inputs = myform.getElementsByTagName('input'); 
    for (var i = 0, j = inputs.length; i<j; i++) { 
     var input = inputs[i]; 
     if (input.type && input.type === 'checkbox' && input.checked) { 
      document.getElementById('div'+input.getAttribute('id')).setAttribute('style','Your style here'); 
     } 
    } 
    } 

当然,如果我理解正确的话,你

+0

我实际上解决它通过使用:var pid = input.parentNode.id; – John 2010-10-22 14:22:38

1

你想使用一个框架? JQuery?

该脚本会很容易:

$( '#myForm的输入[类型=复选框]:选中')。ATTR( '风格', '你的风格');

+0

正如我在Bick的回答中所说的,我能够得到div的id:var pid = input.parentNode.id; – John 2010-10-22 14:40:32