2016-05-17 50 views
0

我有一個模式,看起來像這樣: enter image description here如何在關閉模式後保存已選中的複選框?

幾個複選框後已被檢查,然後點擊Add Users to New Group模式關閉後和我趕上選中的複選框的值。但是現在我需要那些在關閉模式之前檢查的複選框,以便在再次打開模式之後保持檢查狀態,以便用戶可以看到他檢查了哪個複選框,如果甚至可以這樣做。這是我試過的:

$(document).ready(function(){ 
    $('#addNewMembers').click(function(){//click on Add Users to New Group button 
    var selected = $('#ovdjeSuSelektovani').val();//im putting value of all checked checkboxes inside hidden input, so this is how i'm retrieving those values 
    console.log(selected); 
    if(selected!='') { 
     var arrayOfSelected = selected.split(","); 
     for(var i=0;i<arrayOfSelected.length;i++){ 
      $('checkbox value=['+arrayOfSelected[i]+']').prop('checked',true);//did not recognize the jQuery selector 
     } 
     var numberOfSelected=arrayOfSelected.length; 
     $('#numberOfMembers').text(numberOfSelected) 
    }else{//neko upozorenje  
    }  
}); 

沒有工作。 嘗試編號2:

$("#modal-6 input[type='checkbox']:checked").each(function() { 
     this.prop('checked',true); 
}); 

重新打開模態後沒有任何事情發生。如果有人有任何建議,我會很樂意嘗試。

+2

使用localStorage的保存狀態,並開放使用該保存的狀態,以糾正該複選框的狀態 – guradio

+0

在您的嘗試中#2您爲什麼使用':checked'? –

+0

@Idan b因爲當點擊按鈕時,所有選中的複選框應該保留它們的狀態。用'.prop'思考它會起作用。 – Ognj3n

回答

2

沒有html標記checkbox,所以這是不行的

$('checkbox value=['+arrayOfSelected[i]+']').prop('checked',true); 

試試這個,而不是

$('input[type=checkbox][value='+arrayOfSelected[i]+']').prop('checked',true); 

然後,它會選擇複選框,並選擇他們,直到你明確地取消他們離開。

+0

控制檯表示'未捕獲的錯誤:語法錯誤,無法識別的表達式:input [type = checkbox] value = [10207252567926988]' – Ognj3n

+0

更正了它。現在試試 –

+0

它現在對你有用嗎? –

0

當您關閉會話存儲中每個選中複選框的模態存儲唯一標識符時。例如,唯一標識符可以是Facebook ID。

你可以閱讀更多關於Session Storage here。這兩種方法,你會發現真正有用的是:

sessionStorage.setItem

sessionStorage.getItem

我建議使用會話存儲,而不是本地存儲,因爲會話存儲不具有持續性並且在瀏覽器窗口關閉後,您可能不需要保留已選中的複選框。

如果你想使用本地存儲或想了解更多相關信息,您可以檢查this

0

只存儲在$(「#ovdjeSuSelektovani」)所選擇的複選框的id的。VAL()(例如, 「ID1,ID3,ID4」),而不是狀態:

$('#modal-6 input[type='checkbox']').is('checked').each(function() { 
    $('#ovdjeSuSelektovani').val($('#ovdjeSuSelektovani').val() + $(this).attr('id') + ','); 
}); 

$('#ovdjeSuSelektovani').val($('#ovdjeSuSelektovani').val().replace(/,$/g,'')); //removes training comma 

時彈出,然後重新加載,試試這個:

$('#ovdjeSuSelektovani').val().split(',').each(function(id) { 
    $('#' + id).prop('checked', true); 
}