проблема со статусами флажков - PullRequest
0 голосов
/ 23 ноября 2010

У меня есть проблема, и я не могу решить, как ее решить.У меня есть два флажка, оба имеют значение 5. Мне просто нужно добавить значение 5 в переменную, когда флажок установлен, и вычесть 5, когда он не отмечен.Я использую jQuery, но до сих пор мне удалось добавить только 5, и он добавляет 10, когда они оба проверены.Это ничего не вычитает на данный момент.Поскольку у меня есть несколько переключателей, которые я правильно проверяю, код, который у меня есть, такой:

$(":checked").each(function(){
    if ($(this).attr("type") == "checkbox"){
        pricediff += 5;
    }
}

, так как каждая функция используется, она добавляет 10, когда они оба проверены.Это, конечно, не нужно.И это все еще должно вычесть 5, когда флажок снят.Я понятия не имею, как это сделать - я немного новичок в jQuery и JavaScript.Кто-нибудь может мне помочь?Спасибо

PS Это не точный код, а просто суть.

Ответы [ 3 ]

2 голосов
/ 23 ноября 2010

@ rahul имеет хороший ответ, но это означает, что все флажки должны иметь значение 5.

Попробуйте это демо: http://jsfiddle.net/2WJZ4/

HTML:

<input type="checkbox" class="test" value="5" />
<input type="checkbox" class="test" value="7" />
<input type="checkbox" class="test" value="2" />
<input type="checkbox" class="test" value="1" /><br />
<span id="result">0</span>

Сценарий:

$(function(){
    $("input.test").change(function(){
        var $this = $(this);
        var value = $this.val();
        var checked = $this.is(":checked");
        if (checked) value = -value;
        var $r = $('#result');
        $r.text( (+$r.text()) - value)
    });
});

PS.@rahul Удивительная страница скрипки !!!

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

Пример HTML

<input type="checkbox" class="test" />
<input type="checkbox" class="test" />
<input type="checkbox" class="test" />
<input type="checkbox" class="test" /><br />
<span id="result">0</span>

Сценарий

$(function(){
    $("input:checkbox.test").click(function(){
        var checked = $("input:checkbox.test:checked").length;
        var checkedValue = checked * 5;

        $("#result").text(checkedValue)
    });
});

См. рабочая демонстрация

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

попробуйте что-нибудь подобное
var placediff;
function calc()
{
var n = $("input:checked").length;
pricediff = n*5;
}
$(":checkbox").click(calc);

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