在Javascript中保存按钮的状态,即使在刷新每个登录用户后也是如此
我正在开发一个Django应用程序,试图保存单击按钮的状态 我有一个接受注册用户凭证(如果输入)的登录表单。如果成功,用户将被重定向到包含两个按钮的页面。我的主要目的是为新用户(一旦他/她登录)设置“按钮1”并禁用“按钮2”。因此,如果用户单击“按钮1”,该按钮将被禁用,然后“按钮2”将被启用。当同一用户注销时,应保存按钮状态。这意味着用户不应再次单击“按钮1”,因为上次启用了“按钮2” 但是,这似乎适用于所有登录的用户。按钮的状态与登录的特定用户不对应,但通常会影响所有用户的状态 代码如下: interface.html:在Javascript中保存按钮的状态,即使在刷新每个登录用户后也是如此,javascript,jquery,django,Javascript,Jquery,Django,我正在开发一个Django应用程序,试图保存单击按钮的状态 我有一个接受注册用户凭证(如果输入)的登录表单。如果成功,用户将被重定向到包含两个按钮的页面。我的主要目的是为新用户(一旦他/她登录)设置“按钮1”并禁用“按钮2”。因此,如果用户单击“按钮1”,该按钮将被禁用,然后“按钮2”将被启用。当同一用户注销时,应保存按钮状态。这意味着用户不应再次单击“按钮1”,因为上次启用了“按钮2” 但是,这似乎适用于所有登录的用户。按钮的状态与登录的特定用户不对应,但通常会影响所有用户的状态 代码如下:
<script>
var disbledBtn = localStorage.getItem('disabled'); // get the id from localStorage
$(disbledBtn).attr("disabled", true); // set the attribute by the id
$('#button1').click(function () {
$("#button1").attr("disabled", true);
$("#button2").attr("disabled", false);
localStorage.setItem('disabled', '#button1');
}
</script>
<body>
<button type="button" id ='button1'> Button 1 </button>
<button type="button" id ='button2'> Button 2 </button>
</body>
var disbledBtn=localStorage.getItem('disabled');//从localStorage获取id
$(disbledBtn).attr(“已禁用”,true);//通过id设置属性
$('#按钮1')。单击(函数(){
$(“#按钮1”).attr(“禁用”,真);
$(“#按钮2”).attr(“禁用”,false);
setItem('disabled','#button1');
}
按钮1
按钮2
如何使用户A的按钮状态和用户B的按钮状态彼此不同?当前,如果在用户A的帐户中单击了按钮1,则将启用用户B的按钮2(这不是我想要的)
是否有办法实现此要求?在本地存储中
Key Value
1001 2
1002 1
1003 2
脚本
<script>
var user_id = 1001; // unique id of user so we can find from localstorage
var disbledBtn = localStorage.getItem(user_id); // here it gives 1 OR 2 (if 1 then button1 is desabled, if 2 then button2 is disabled
if(disbledBtn == 2) {
$("#button2").attr("disabled", true); // disable button2
} else {
$("#button1").attr("disabled", true); // disable button1
}
$('#button1').click(function () {
$("#button1").attr("disabled", true);
$("#button2").attr("disabled", false);
localStorage.setItem(user_id, '1'); // store 1 in localstorage because button1 is now disabled
}
$('#button2').click(function () {
$("#button2").attr("disabled", true);
$("#button1").attr("disabled", false);
localStorage.setItem(user_id, '2'); // store 2 in localstorage because button2 is now disabled
}
</script>
<body>
<button type="button" id ='button1'> Button 1 </button>
<button type="button" id ='button2'> Button 2 </button>
</body>
var user_id=1001;//用户的唯一id,以便从localstorage中查找
var disbledBtn=localStorage.getItem(user_id);//这里它给出1或2(如果是1,则按钮1被清除,如果是2,则按钮2被禁用
如果(解散BTN==2){
$(“#按钮2”).attr(“已禁用”,true);//禁用按钮2
}否则{
$(“#button1”).attr(“disabled”,true);//禁用按钮1
}
$('#按钮1')。单击(函数(){
$(“#按钮1”).attr(“禁用”,真);
$(“#按钮2”).attr(“禁用”,false);
setItem(用户_id,'1');//将1存储在localStorage中,因为button1现在已禁用
}
$('#按钮2')。单击(函数(){
$(“#按钮2”).attr(“禁用”,真);
$(“#按钮1”).attr(“禁用”,false);
setItem(用户_id,'2');//将2存储在localStorage中,因为button2现在已禁用
}
按钮1
按钮2
只需通过每个用户的Cookie完全不同。为每个用户保存唯一的localStorage项,并使用该id(
localStorage.getItem(_id);
)而不是localStorage.getItem('disabled')存储该项;我建议您将用户状态保存到数据库中。localstorage
是根据浏览器/机器创建的,即一个用户从第一台机器登录并设置状态,然后从第二台机器再次登录,然后原始状态将被加载,而不是保存状态。@BrijeshGajera您能做一个小演示吗?@anuragal我将与一个用户建立一对一的关系,对吗?我如何将其存储在我的模型中?你能给出一个小例子吗?我将非常感激。请按照本文了解模型和数据库-如果假设有很多用户,应用程序会变慢(由于耗尽本地存储空间)?另外,用户Id现在是硬编码的,有没有一种方法可以动态告诉JS哪个用户是谁?或者我应该使用django模型来存储值?我认为localstorage对您来说是新的,所以localstorage存储在本地内存(而不是服务器或数据库)中,在其用户浏览器中,您可以在开发者工具(ctrl+sift+d)中看到它->Application->Storage->Local Storage
它不会影响速度哦,好吧,我问的第二个问题呢?现在,用户id被硬编码为1001,我如何更改它并通过用户id动态告诉JS哪个用户是谁?localstorage存储在浏览器中,所以当您为用户1、用户2和用户3创建localstorage时,它会存储在浏览器中这里的计算机user1只包含他/她的本地存储,而不是其他。我会尝试一下,但我现在想实现Brijesh的想法。不过非常感谢你的建议。