Javascript 刷新页面后保持复选框处于选中状态

Javascript 刷新页面后保持复选框处于选中状态,javascript,jquery,checkbox,local-storage,Javascript,Jquery,Checkbox,Local Storage,我的rails应用程序中有如下复选框 <% if field["field_type"] == "checklist"%> <% templat = @custom_templates.select{|s| s["id"] == m["startup_field_template_id"]}.first%> <small> <% vals = field["options"].to_s.gsub(/[\[\"\]]/, '').split(',

我的rails应用程序中有如下复选框

<% if field["field_type"] == "checklist"%>
 <% templat = @custom_templates.select{|s| s["id"] == m["startup_field_template_id"]}.first%>
 <small>
   <% vals = field["options"].to_s.gsub(/[\[\"\]]/, '').split(',') %>
   <% vals.each do |v| %>
   <% if templat["option_multi"]%>
     <input type="checkbox" />&nbsp;&nbsp;&nbsp; <%= v %><br/>
   <% else %>
     <input type="checkbox" class="check" />&nbsp;&nbsp;&nbsp; <%= v %><br/>
   <% end %>
   <% end %>
 </small>
<% else %>
 n/a
<% end %>


您正在使用的选择器将设置所有复选框输入状态,因此您必须分别为每个输入设置checked属性,而且更好的使用方法是使用
setItem
getItem()
方法:

这是一个片段(在这里它不起作用,因为它是一个沙盒检查小提琴)和一个:

$(函数(){
var test=localStorage.input=='true'?true:false;
$('input')。每个(函数(i,el){
//log(localStorage.input);
test=(localStorage.getItem(`input-${i}`)=='true')?true:false;
$(el).prop('checked',test | | false);
}); 
});
$('input')。在('change',function()上{
setItem(`input-${$(this.index('input')}`,$(this.is(':checked'));
});

复选框
复选框
复选框
复选框
复选框
<sript>
$(function(){
var test = localStorage.input === 'true'? true: false;
$('input').prop('checked', test || false);
});

$('input').on('change', function() {
localStorage.input = $(this).is(':checked');
console.log($(this).is(':checked'));
});
</script>