复选框的Jquery触发器事件
我有一系列的复选框,我已经为它们编写了单击jquery脚本。当用户单击复选框时,它会打开另一系列复选框并继续。现在我的问题是,当用户选中其中的几个复选框,并移动到下一页,出于某种原因,他/她返回到复选框页。然后我应该把他/她检查过的所有盒子打开。 我在加载dom时编写了一个复选框测试复选框的Jquery触发器事件,jquery,checkbox,eventtrigger,Jquery,Checkbox,Eventtrigger,我有一系列的复选框,我已经为它们编写了单击jquery脚本。当用户单击复选框时,它会打开另一系列复选框并继续。现在我的问题是,当用户选中其中的几个复选框,并移动到下一页,出于某种原因,他/她返回到复选框页。然后我应该把他/她检查过的所有盒子打开。 我在加载dom时编写了一个复选框测试 $(document).ready(function(){ if($('.main').is(':checked')){ $(this).trigger('click'); }else{
$(document).ready(function(){
if($('.main').is(':checked')){
$(this).trigger('click');
}else{
//do nothing
}
$('.main').click(function(){
if($('.main').is(':checked')){
var val = $(this).attr('alt');
$('#'+val).show();
}else{
var val = $(this).attr('alt');
$('#'+val).hide();
}
});
});
正如你在上面看到的。Main是checkbox类。单击该按钮,我将打开另一系列复选框。现在,我希望在他们再次访问页面时,为他们的复选框自动执行此操作。通常,是浏览器决定“帮助”并重新填写用户已完成的表单。您不应该依赖浏览器,因为设置很容易更改,并且可能因用户而异 相反,您可能需要考虑将单击的复选框存储在cookie/localstorage中,或者通过AJAX将每次单击发送到服务器。然后,当用户登陆页面时,您可以检查cookie的内容或检索通过AJAX保存的单击元素;然后可以在适当的元素上重新创建单击
请勾选此相关文章,以便使用jQuery处理cookie数据-使用会话或cookie保存。返回时,请勾选主类复选框值,并相应地勾选这些值,然后使用以下代码:
<script type="text/javascript">
$(document).ready(function(){
$('.main').each(function(){
if($(this).is(':checked')){
var val = $(this).attr('alt');
$('#'+val).show();
}else{
var val = $(this).attr('alt');
$('#'+val).hide();
}
});
if($('.main').is(':checked')){
$(this).trigger('click');
}else{
//do nothing
}
$('.main').click(function(){
if($('.main').is(':checked')){
var val = $(this).attr('alt');
$('#'+val).show();
}else{
var val = $(this).attr('alt');
$('#'+val).hide();
}
});
});
</script>
$(文档).ready(函数(){
$('.main')。每个(函数(){
如果($(this).is(':checked')){
var val=$(this.attr('alt');
$('#'+val).show();
}否则{
var val=$(this.attr('alt');
$('#'+val).hide();
}
});
如果($('.main')。是(':checked')){
$(this.trigger('click');
}否则{
//无所事事
}
$('.main')。单击(函数(){
如果($('.main')。是(':checked')){
var val=$(this.attr('alt');
$('#'+val).show();
}否则{
var val=$(this.attr('alt');
$('#'+val).hide();
}
});
});
我只需要使用一些JSON和本地存储来跟踪选中的框等
$(document).ready(function () {
if (localStorage.getItem('boxes')) {
var boxes = JSON.parse(localStorage.getItem('boxes'));
$.each(boxes, function (idx, val) {
var box = $('.main').eq(idx);
box.prop('checked', val);
$('#' + box.attr('alt')).toggle(val);
});
}
$('.main').on('change', function () {
var val = $(this).attr('alt'),
boxes = {};
$.each($('.main'), function (i, el) {
boxes[$(el).index('.main')] = el.checked;
});
$('#' + val).toggle(this.checked);
localStorage.setItem('boxes', JSON.stringify(boxes));
});
});
我仍然可以提取这些值。我的问题是我希望这些子类元素(选中复选框时打开)在用户再次访问页面时自动打开是的-您必须执行一些
trigger('click')
magic来模拟用户单击这些元素…嗯,检查已保存的数据,并根据先前单击的内容重新创建相同的状态。基本创建的事件,如单击或双击。你可以使用这个触发函数来模拟一个真实的用户点击一个元素。我仍然可以得到这些值。我的问题是,我希望这些子类元素(选中复选框时打开)在用户再次访问页面时自动打开,并且使用此代码它将永远打开!对于会话,请使用sessionStorage。我仍然可以提取值。我的问题是,我希望当用户再次访问页面时,这些子类元素(选中复选框时打开)应自动打开编辑我的代码,然后重试。主复选框是否显示正确的状态?你是怎么做到的?力起作用了!相反,当我刷新页面时,它会选中所有复选框。我不知道wy?