检测是否选中了复选框,然后获取div id

时间:2010-10-22 14:11:13

标签: javascript

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

我有这个来检测body 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>

2 个答案:

答案 0 :(得分: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');
      }
   }
  }

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

答案 1 :(得分:1)

您认为使用框架吗? JQuery?

那个剧本很简单:

$('#myform input [type = checkbox]:checked')。attr('style','your style');