JavaScript для создания нескольких флажков для оператора - PullRequest
0 голосов
/ 15 июля 2011

Привет. Я пытаюсь создать несколько флажков, не устанавливая каждый из них:

function test(obj) {
    if (document.getElementByID("info").checked == true) { 
        document.getElementById("gender")[0].disabled = true;
    }
}

и это работает для одного флажка, но я пытался использовать код ниже:

function test(obj) {
    var x = obj.name;
    var rowCount = $('#List tr').length;
    for (var i = 0; i rowCount-1; i++) { 
        if (x == document.getElementByID("info"["+i+"]).checked == true) {
            document.getElementById("gender"["+i+"]).disabled = true;
        }
    }
}

чтобы создать столько флажков, сколько я хочу, без необходимости делать каждый из них, но, похоже, он не работает.

1 Ответ

3 голосов
/ 15 июля 2011

Хорошо, давайте начнем с начала:

Чтобы создать флажок в javascript, вы должны сделать что-то вроде этого:

var checkbox = document.createElement("input");
checkbox.type = "checkbox";

Затем, чтобы добавить свой флажок в div на вашей веб-странице, вы должны сделать что-то вроде:

document.getElementById("your_div_id").appendChild(checkbox);

Затем, чтобы увидеть, установлен ли флажок, вы смотрите на свойство «флажок» следующим образом:

var isChecked = !!document.getElementById("your_checkbox").checked;
if(isChecked == true){
    // Do whatever you want
}

Вот функция, которая будет проходить через несколько флажков

function testCheckBoxes(container_id){
    var checkboxes = document.querySelector("#" + container_id + " > input[type='checkbox']");
    for(var i = 0; i < checkboxes.length; i++){
        if(!!checkboxes[i].checked == true){
            // Your code
        }
}

[Примечание: я использую document.querySelector для согласованности, но, поскольку я думаю, что вы используете jquery, вместо этого используйте $] Если вы хотите что-то сделать, когда кто-то нажимает на ваш флажок, используйте прослушиватель событий:

var list = document.getElementsByClassName("checkbox");
for(var i = 0; i < list.length; i++){
    list[i].addEventListener('click', function(event){
        if(!!event.target.checked == true){
            // Do something
        }
    }, true);
}

Надеюсь, этого достаточно, чтобы вы начали. Удачи =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...