Javascript 刷新页面后保持复选框处于选中状态
我的rails应用程序中有如下复选框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(',
<% 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" /> <%= v %><br/>
<% else %>
<input type="checkbox" class="check" /> <%= 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>