>source

List.js에 체크 박스가있는 테이블이 있습니다. 목록의 검색 기능으로 인해 숨겨진 모든 확인란을 계산하고 싶습니다. 아래의 방법은 현재 검색 후에 현재 표시된 확인란 만 작동합니다.

<!DOCTYPE html><html lang="en"><head><title>Counting checked checkboxes</title></head><script src="//cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script><body><div id='sample_rows'><div id='sample_count'></div><input class="search" placeholder="Search" /><table>    <tbody class="list">    <tr>        <td class='name'>checkbox1</td>        <td class="checked">            <input class="sample_checkbox" type="checkbox" name="checkbox1" id="checkbox1" onclick="update_count()">        </td>    </tr>    <tr>        <td class='name'>checkbox2</td>        <td class="checked">            <input class="sample_checkbox" type="checkbox" name="checkbox2" id="checkbox2" onclick="update_count()">        </td>    </tr>    </tbody></table></div><script>    var list_options= {
        valueNames: ['name', 'checked'],
        searchDelay: 500
    };
    var sample_list= new List('sample_rows', list_options);
    sample_list.on('updated', update_count);
    document.addEventListener("load", update_count());
    function update_count(){
        let total= sample_list.size();
        let checked_count= 0;
        let items= sample_list.items;
        for (let i= 0; i < total; i++){
            let item= items[i];
            let checkbox_id= items[i]._values['name'];
            let sample_checkbox= document.getElementById(checkbox_id);
            if(sample_checkbox != null){
                if (sample_checkbox.checked){
                    checked_count += 1;
                }
            }
            else {
                alert('Cannot find state of ' + checkbox_id);
            }
        }
        document.getElementById('sample_count').innerHTML= String(checked_count) + " selected";
    }
</script></body></html>

검색 중에 확인란의 상태가 유지되므로 수를 사용할 수 있어야합니다. 이것은 다음과 같이 설명됩니다.

  1. 두 가지 확인란을 모두 확인하십시오. count는 2입니다.
  2. "box2"를 검색하십시오. 카운트는 1로 표시되며, 상자에 대한 경고가 계산되지 않은 상자에 대해 표시됩니다.
  3. 검색 상자를 지우십시오. count는 디스플레이 된 상태의 상태가 보존되어 있기 때문에 다시 카운트가 2 개입니다.

확인란을 모두 셀 수 있습니까?

이 줄을 삭제합니다. 샘플 _list.on ( 'updated', update_count); 결과 update_count를 검색 할 때마다 이전에 저장된 카운트를 지우는 결과가 발생합니다.

hrishikesh2021-04-23 08:55:14

@hrishikesh 나는 단순한 예제를위한 것이 아니라 일반적으로 모든 체크 박스를 계산해야합니다. 누군가가 체크 박스를 검색하고 토대하는 경우 어떻게됩니까? 나는 셀 수있다.

mattm2021-04-23 08:55:14
  • 이전 python : www.없이 텍스트를 허용하지 마십시오
  • 다음 python : 파이썬에서 무한한 개체를 만드는 방법을 목록에서 호출하는 방법