如何在页面刷新后保存复选框状态?

时间:2015-10-14 14:29:30

标签: javascript jquery cookies checkbox

我的UI上有多个复选框,在检查时执行某些操作。但是,当我刷新页面时,所有复选框都会再次被取消选中。我如何使用AJS.Cookie(Atlassian Javascript框架)来保存状态。我编写的源代码,但它将cookie值定义为未定义。

<input id="user" type="text" ng-model="user" class="form-control"> <input id="password" type="password" ng-model="password" class="form-control"> 是按钮的ID,它会传递所有选中的复选框。

'#generate-canvas-button'

3 个答案:

答案 0 :(得分:4)

尝试这种方法:

// Wait until the page is completely loaded.
$(document).ready(function() {
  // Iterating over all checkboxes on page.
  $('input:checkbox').each(function() {
    // Getting checkbox name.
    var name = $(this).attr('name');

    // Checking saved cookie.
    if (AJS.Cookie.read(name)) {
      // Updating checkbox state.
      $(this).prop('checked', true);
    }

    // Attaching onchange handler.
    $(this).change(function() {
      // Checking checkbox state.
      if ($(this).is(":checked")) {
        // Saving checkbox name to cookie.
        AJS.Cookie.save(name, true);
      } else {
        // Remove checkbox state from cookie.
        AJS.Cookie.erase(name);
      }
    });
  });
});

答案 1 :(得分:0)

使用viewstate概念intead使用其他cookie逻辑

答案 2 :(得分:-1)

将所有逻辑包裹在

AJS.toInit(function ($) {
    // You can use $ instead of AJS.$ here
    ...
});

Atlassian相当于$(document).ready(...),它允许在你打电话之前加载所有Atlassian代码。