在多个设备上保存和加载复选框状态

时间:2018-10-01 16:22:08

标签: javascript checkbox storage local status

我目前正在一个项目中,我必须创建一个仅在公司的Intranet服务器上启动的“网站”。 因此,存在一个带有5个复选框的用户界面。目前,我正在将复选框状态存储在本地存储中,如下所示:

<script>
var checkboxValues = JSON.parse(localStorage.getItem('checkboxValues')) || {},
    $checkboxes = $("#checkbox-container :checkbox");

	console.log(checkboxValues);
		
$checkboxes.on("change", function(){
  $checkboxes.each(function(){
    checkboxValues[this.id] = this.checked;
  });
  
  localStorage.setItem("checkboxValues", JSON.stringify(checkboxValues));
});

// On page load
$.each(checkboxValues, function(key, value) {
  $("#" + key).prop('checked', value);
});
</script>

到目前为止,这个方法还不错! 但是,现在我将近一个星期都在努力解决这个问题:

每台设备上的复选框状态都必须相同...例如,如果我在一个设备上勾选一个复选框,则该复选框必须在所有其他设备上被下一个f5勾选... 希望你们能帮助我,并提供一些替代方法来存储复选框状态。

非常感谢您!

祝一切顺利

poza

1 个答案:

答案 0 :(得分:1)

如此处所述:https://www.w3schools.com/jsref/prop_win_localstorage.asp

  

localStorage和sessionStorage属性允许保存键/值   在网络浏览器中配对。

这意味着您的复选框状态保存在客户端。但是,我建议您不要将状态保存在服务器本身(json文件,数据库等)上,而不是分别刷新所有客户端设备上的状态。

您的客户可以使用JavaScript发送一个所谓的fetch-request,以获取状态代码。

我希望这会有所帮助。