2016-06-24 85 views
0

我有一個表單,其中有一些下拉動態創建。它像如何計算JQuery中某些輸入類型的總數

1. Main question 
    a . Sub Question dropDown 
    b . Sub Question dropDown 
    c . Sub Question dropDown 
2. Main question 
    a . Sub Question dropDown 
    b . Sub Question dropDown 
    c . Sub Question dropDown 

每一個類名下拉是這樣

<select class="dropdown dec_MT004" name="MT004_percentage[]" data-placeholder="weightage"> 
    <option value="">Select</option> 
    <option value="10">10</option> 
    <option value="20">20</option> 
    <option value="30">30</option> 
    <option value="40">40</option> 
    <option value="50">50</option> 
    <option value="60">60</option> 
    <option value="70">70</option> 
    <option value="80">80</option> 
    <option value="90">90</option> 
    <option value="100">100</option> 
</select> 

所以是主要問題的ID是「MT001」

那麼類名是

dec_MT001 
dec_MT002 

我必須檢查每個主要問題的下拉總數是否爲100

我試圖做到這一點

var validateWeightage = function(_classname) { 

    //alert(_classname); 

    var value = []; 
    var sum = 0; 

    $('.' + _classname).each(function() { 

    if ($(this).val() != '' || $(this).val() != null) 
     sum += parseInt($(this).val()); 

    }); 

    if (isNaN(sum) || sum <= 100) { 
    //alert(sum); 
    $('.' + _classname).addClass('label-danger'); 
    } else { 
    $('.' + _classname).removeClass('label-danger').addClass('label-info'); 
    } 

} 

setInterval(function() { 
    validateWeightage("dec_MT004"); 
}, 5000); 

,但是這是行不通的,

它添加類的標籤危險「即使當副合計爲「100」

任何幫助,將不勝感激

更新

這裏是一個小提琴支持

​​

+2

你爲什麼要在一個間隔內而不是變化? – epascarello

+0

什麼是mainQuestion?那是一種形式? – Jai

+1

你正在檢查沒有數字大於100的單個類(單選)。 – jcubic

回答

0

我想你更改此區域:

if(isNaN(sum) || sum < 100){ 

或者你定義的全局變量。

var value = []; 
var sum = 0; 

var validateWeightage = function(_classname) { 

    //alert(_classname); 



    $('.' + _classname).each(function() { 

    if ($(this).val() != '' || $(this).val() != null) 
     sum += parseInt($(this).val()); 

    }); 

    if (isNaN(sum) || sum <= 100) { 
    //alert(sum); 
    $('.' + _classname).addClass('label-danger'); 
    } else { 
    $('.' + _classname).removeClass('label-danger').addClass('label-info'); 
    } 

} 

setInterval(function() { 
    validateWeightage("dec_MT004"); 
}, 5000); 
+0

這不是一個答案如果你回答,這是正確的,你會得到足夠的代表評論。現在它是一個評論。他需要改變它到什麼程度? – mplungjan