1

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

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

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

4

3 回答 3

1

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

于 2012-12-17T16:30:58.517 回答
1

就像是

   {if (this.value == 'variable') {this.checked="checked";}}
于 2012-12-17T16:32:19.193 回答
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 并设置复选框。

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

  • 所有复选框都必须有一个 id 才能被这个算法识别。
  • 存储中不应该有任何其他变量使用相同的键(可以使用前缀来消除副作用)。

我希望它有帮助:)

于 2012-12-17T16:46:54.573 回答