我的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'
答案 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代码。