保留复选框状态

时间:2012-12-17 16:27:55

标签: php javascript jquery

我使用以下代码在刷新页面时保留选择下拉菜单。

$("#form_Selection > option").each(function() {
    if (this.value == 'variable') { 
        this.selected=true; 
    }
});

我很难配置类似的代码,以便在刷新后保留复选框的状态。有任何想法吗?

3 个答案:

答案 0 :(得分:1)

以下是如何工作的(我没有重新打印代码的逻辑部分,只需设置复选框     $(this).attr('checked', true);

答案 1 :(得分:1)

类似

   {if (this.value == 'variable') {this.checked="checked";}}

答案 2 :(得分:0)

要使用:checkboxprop('checked')保存所有复选框的状态,您可以使用sessionStorage

$(':checkbox').each(function(index,element){
    //save the 'checked' property of every checkbox
    if ( $(this).prop('checked') ) {
        sessionStorage['checked-checkboxes']=sessionStorage['checked-checkboxes'] + ',';
    }
}

然后加载页面时:

var checkedCheckboxes = sessionStorage['checked-checkboxes'];
//if there's anything saved in the sessionStorage for checked checkboxes
if ( checkedCheckboxes ) {
    var checkedCheckboxesNames = checkedCheckboxes.split(',');
    for( var i=0; i < checkedCheckboxesNames; i++ ) {
        $( '#' + checkedCheckboxesNames[i] ).prop( 'checked', true );
    }
}

这个想法很简单:保存时,保存所有保存的复选框的ID,加载时,获取所有这些ID并设置复选框。

如果您想要永久存储,当然可以将sessionStorage替换为localStorage。请注意:

  • 所有复选框都必须具有使用此算法标识的ID。
  • 存储中不应该有任何其他变量使用相同的密钥(前缀可以用来消除副作用)。

我希望它有所帮助:)