Передавать значения из флажков, используя Javascript - PullRequest
0 голосов
/ 09 ноября 2010

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

<div class="checkboxclass">
<input name="form[paperdesign][]" value="150" id="paperdesign0" type="checkbox">
<label for="paperdesign0">text 1</label>
<input name="form[paperdesign][]" value="100" id="paperdesign1" type="checkbox">
<label for="paperdesign1">text 2</label>
<input name="form[paperdesign][]" value="50" id="paperdesign2" type="checkbox">
<label for="paperdesign2">text 3</label>
<input name="form[paperdesign][]" value="50" id="paperdesign3" type="checkbox">
<label for="paperdesign3">text 4</label>
</div>

... используя эту функцию:

function calculate(){
    var sela=document.querySelectorAll("div.checkboxclass input");
    resultsel.value=0;
    resultsel.value=parseInt(resultsel.value);
    for(i=0;i<sela.length;i++)
        resultsel.value=parseInt(resultsel.value)+parseInt(sela[i].value);
}

И все работает нормально, за исключением того, что он передает все эти значения в одно и то же время.

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

большое спасибо заранее

Дом

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

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

Вы должны проверить для выбора флажка:

function calculate(){
    var sela=document.querySelectorAll("div.checkboxclass input");
    var total = 0;
    for(i=0;i<sela.length;i++) {
        if(sela[i].checked)
            total += parseInt(sela[i].value);
    }
    resultsel.value = total;
}
1 голос
/ 09 ноября 2010

Если я понимаю вопрос, вы имеете в виду, что вы хотите включить только значения для отмеченных пунктов.В этом случае вы сможете использовать селектор :checked:

var sela=document.querySelectorAll("div.checkboxclass input:checked");
...