2013-04-10 3 views
0
$("#scorecard").change(function() { 
    var total = 0; 
    $("#scorecard :checked").each(

    function() { 
     total += parseInt($(this).val()) 
    }); 
    $("#score").val(total); 
}).change(); 

Эта функция суммирует значения проверенных радиостанций в виде html в режиме реального времени. http://jsfiddle.net/hireconor/DDfbf/Значения формы счета равны 0 с jQuery

Как я могу изменить его, так что он будет отсчет проверяемые значения радио, которые равны 0? Таким образом, если значение проверено равным 0, то оно равно 1, что-либо еще = 0 и сумме, а затем минус на 18, отображая его в текстовом поле с id = "score".

ответ

0

Вот несколько неочевидным подход:

var total = $('#scorecard :checked').filter(function() { 
    return $(this).val() === '0'; 
}).length; 

Вот обновленный jsfiddle of it in action.


Edit: Я не был уверен, как именно интерпретировать minus it by 18 ... это 18 - total или total - 18? В любом случае, вот обновленный fiddle, показывающий первый.

+0

Спасибо, что сделал трюк и добавил 18 в '$ ("# играл") Val (18 - общий);.. – Conor

+0

Удивительный, рад, что он сработал! – jmar777

+0

Могу ли я покончить с этим и спросить, как отобразить (общий балл - партитура). Но это сложно, потому что если дыра не была сыграна, то пар не следует вычитать из текущего балла. Вот что я пробовал до сих пор: http://jsfiddle.net/hireconor/DDfbf/11/ – Conor

0

Демо: http://jsfiddle.net/DDfbf/3/

$("#scorecard").change(function() { 
    var total = 0; 
    var checkedTotal = 0; 

    $("#scorecard :checked").each(

    function() { 
     total += parseInt($(this).val()) 
     if (this.value == 0) { 
      checkedTotal++; 
     } 
    }); 
    $("#score").val(total); 
    console.log(checkedTotal); 
}).change(); 
0

Fiddle

$("#scorecard").change(function() { 
    var total = 0; 
    $("#scorecard :checked").each(

    function() { 
     var valu = parseInt($(this).val()); 
     if(valu === 0){ 
      total += 1; 
     } 
     else{ 
     total += valu; 
     } 
    }); 
    $("#score").val(18-total); 
}).change(); 
Смежные вопросы