2016-06-24 21 views
0

Ich habe ein Formular, das einige Dropdown dynamisch erstellt hat. Es ist wieSo berechnen Sie die Summe bestimmter Eingabe-Typen in 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 

Der Klassenname von jeder herunterfallen ist wie dieser

<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> 

So ist die ID der Hauptfrage ist, wird 'MT001'

dann die Klassennamen sind

dec_MT001 
dec_MT002 

Ich muss überprüfen, ob die Summe einige der Dropdown für jede Hauptfrage ist 100 oder nicht

Ich versuche, diese

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); 

zu tun, aber das funktioniert nicht,

Es ist das Hinzufügen der Klasse 'Label-Gefahr', auch wenn der Unter total '100' ist

Jede Hilfe wäre

aktualisieren

012.351.641 geschätzt werden

hier ist eine Geige, dass

JSFIDDLE

+2

Warum machst du es auf einem Intervall und nicht onchange? – epascarello

+0

Was ist mainQuestion? Ist das eine Form? – Jai

+1

Sie überprüfen einzelne Klasse (einzelne Auswahl), die keine Nummer größer als 100 haben. – jcubic

Antwort

0

Ich glaube, Sie diesen Bereich ändern zu unterstützen:

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

Oder Sie definierten globalen Variablen.

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

Das ist keine Antwort Wenn du antwortest und es ist richtig, du würdest genug rep bekommen, um zu kommentieren. Gerade jetzt ist es ein Kommentar. Was braucht er, um es zu ändern? – mplungjan

Verwandte Themen