即使页面刷新后仍保持复选框被选中?

问题描述:

我已经写了if条件勾选复选框:即使页面刷新后仍保持复选框被选中?

$('input[type="checkbox"]').click(function() { 
    if (this.id == "internships" && this.checked) { 
     window.location.href = "<?php echo Yii::app()->createAbsoluteUrl('job/internships'); ?>"; 
    } 
    else { 
     window.location.href = "<?php echo Yii::app()->createAbsoluteUrl('job/internships'); ?>"; 
    } 
}); 

现在我要确保,即使页面刷新后的复选框,除非I /用户这样做不会改变其状态。我怎样才能做到这一点?

+0

通过GET参数的URL,并以此为基础进行传递的值 –

+0

你需要休息在某处存储复选框的状态。您可以使用URL参数,localStorage,sessionStorage,cookie或服务器端数据库。选择是你的。 –

+0

你可以告诉我如何在我的代码中使用localstorage来完成它。 – lakshay

您可能只想生成已设置checked属性的复选框。 按照你的代码风格,它会像

<?php 
// prepare a string to be inserted. 
// it will be either empty, or a nonempty "checked" attribute 
$shouldBeChecked = is_this_the_internship_page() ? 'checked="checked"' : ''; 
?> 

然后......

<input type="checkbox" <?php echo $shouldBeChecked; ?> > 

如果我记得正确的PHP :-)

参见:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox

而且,在撰写此答案时,您的JS包含两个相同的重定向。

制作使用的localStorage的

JS

$('#check').on('click', function(){ 

    if(localStorage.getItem("checkedbox") == 'true') { 
    $(this).prop(checked, 'false'); 
    localStorage.setItem("checkedbox", 'false'); 

    } 
    else { 
    $(this).prop(checked, 'true'); 
    localStorage.setItem("checkedbox", 'true'); 
    } 

}) 

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input type = "checkbox" id="check"/>