доступ к тексту контрольного списка через JavaScript - PullRequest
0 голосов
/ 17 июля 2011

У меня есть список флажков, который у меня есть, я связал какое-то имя документа с его текстовым полем. Теперь мне нужно найти только флажки, текст которых содержит расширение .pdf, и проверить их все одним щелчком мыши. У меня естьнаписал следующий javascript, но он не работает для меня

function CheckAllPDF() {
            var checkBoxList = document.getElementById("<%= cblFiles.ClientID %>");
            var checkBoxes = checkBoxList.getElementsByTagName("input");

                for (i = 0; i < checkBoxes.length; i++) {
                    var string = checkBoxes[i].parentNode.getElementsByTagName('label').innerHTML;
                    var match = string.indexOf(".pdf");

                    if (match != -1) {
                        checkBoxes[i].checked = true;
                    }
                    else {
                        checkBoxes[i].checked = false;
                    }
                } 

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 17 июля 2011

Когда вы помещаете список флажков asp.net на страницу, он переводится в список ввода типа флажка, поэтому вам нужно получить доступ к каждому элементу управления и проверить его, чтобы ваш код JavaScript был похож на:

        //Get the main id of the asp.net check box list
        var checkboxId = '<%=  CheckBoxList1.ClientID %>';

        //Loop on all generated input check boxes where the count function determine the number of generated checkboxes
        for (var i = 0; i < <%=  Count() %>; i++) {
        //Append the count on the main asp.net check box id the value ('_'+i)
            var checkBox = document.getElementById(checkboxId + '_' + i);
            var checkBoxValue = checkBox.value;

            var match = checkBoxValue.indexOf(".pdf");
            if (match != -1) {
                checkBox.checked = true;
            }
            else {
                checkBox.checked = false;
            }
        }

А в своем коде напишите функцию подсчета следующим образом:

public int Count()
    {
        return CheckBoxList1.Items.Count;
    }
...