2

我的复选框有问题。我有一系列照片的形式。每张照片都有一个复选框。如果选中照片的复选框,则使用 .show() 显示与照片关联的 div。

这很好,我可以提交表格。但是,如果我在浏览器上按“返回”以返回照片集,复选框仍处于选中状态,但与其关联的 div 不再可见。

即使在“返回”页面时,我需要做什么才能确保检查的照片仍然具有可见的 div?

$(document).ready(function () {

$(':checkbox').change(function() {
  var dataID = $(this).attr("id");
  if($(this).is(':checked')) {
    $("#content"+dataID).show();
  }
  else {
    $("#content"+dataID).hide();
  }
});  

});

形式是这样的:

<form>
<input name="box1" id="box1" type="checkbox" />
<input name="box2" id="box2" type="checkbox" />
<input name="box3" id="box3" type="checkbox" />
...
</form>
4

2 回答 2

3

尝试在页面加载时显示已检查 div 的图像,例如:

$(document).ready(function () {

$(':checkbox').change(function() {
  // ... your code ...
});  

$(':checkbox').each(function() {
  var dataID = $(this).attr("id");
  if($(this).is(':checked')) {
    $("#content"+dataID).show();
  }
  else {
    $("#content"+dataID).hide();
  }
}); 

});

清洁版

$(document).ready(function () {
    $(':checkbox').change(function() { checkImage($(this)); });
    $(':checkbox').each(function() { checkImage($(this)); });
});
function checkImage(_checkBox) {
    var dataID = _checkBox.attr("id");
    if(_checkBox.is(':checked')) {
        $("#content"+dataID).show();
    }
    else {
        $("#content"+dataID).hide();
    }
}
于 2012-07-09T04:58:24.010 回答
0

做这样的事情:

$(document).ready(function() {    
    $(':checkbox').change(function() {
        ToggleContent($(this));
    });

    $(':checkbox').each(function() {
        ToggleContent($(this));
    });

    function ToggleContent(chkbox) {
        var dataID = chkbox.attr("id");
        if (chkbox.is(':checked')) {
            $("#content" + dataID).show();
        }
        else {
            $("#content" + dataID).hide();
        }
    }
});​
于 2012-07-09T05:00:14.893 回答