2017-01-27 4 views
1

Ich versuche, ein div auf den Gesamtwert meiner wählt anhand ein- oder auszublenden:zeigen div abhängig von Wert

Hier ist eine Demo: https://jsfiddle.net/wrfvukjv/

<script type="text/javascript"> 
function recalculate() { 
    var sum = 0; 
    $("input[type=radio]:checked").each(function() { 
     sum += parse($(this).val()); 
     }); 
    $("#sum").html(sum.toFixed(2)); 
} 

$("input[type=radio]").change(function() { 
    recalculate(); 
}); 

</script> 

ich hier versucht:

if (sum > 2) 
{ 
    console.log('showmessage'); 

} 
else 
{ 
    console.log('no message'); 
} 

aber es gibt einfach keine Nachricht

+0

Was sind die Bedingungen, um das div anzuzeigen oder zu verbergen? –

+0

@james_bond ich habe meine Versuche in den Beitrag hinzugefügt – PhpDude

Antwort

1

Hier können Sieaktualisiert 0

Javascript:

function recalculate() { 
    var sum = 0; 
    $("input[type=radio]:checked").each(function() { 
     sum += parseFloat($(this).val()); 
     }); 
    $("#sum").html(sum.toFixed(2)); 
    if(sum >= 2) $("#message").show(); 
    else $("#message").hide(); 
} 

$("input[type=radio]").change(function() { 
    recalculate(); 
}); 

und HTML für Ihre Nachricht:

<div id="message"> 
    Show message IF overall sum is >= 2<br> 
    Hide if < 2 
</div> 

Und ein wenig CSS für das Ausblenden der #message wenn Laden der Seite:

#message { 
    display: none; 
} 
+2

Es funktioniert, bis Sie deaktivieren, also, wenn ich es zeigen, dann ändern Sie meine Optionen die Nachricht bleibt noch? – PhpDude

+0

'if (Summe> = 2) {$ (" # Nachricht "). Show(); } else {$ ("# Nachricht"). hide(); } ' –

1

Sie können fügen Sie eine Bedingung am Ende Ihrer recalculate() Funktion hinzu:

function recalculate() { 
    var sum = 0; 
    $("input[type=radio]:checked").each(function() { 
     sum += parseFloat($(this).val()); 
     }); 
    $("#sum").html(sum.toFixed(2)); 

    if(sum >= 2){   
     $("#message").show(); 
    }else{ 
     $("#message").hide(); 
    } 
} 
0

Kann mit weniger Code auch getan werden. Siehe unten. #message zunächst versteckt und wenn :radio:checked Wertsumme größer oder gleich 2 ist, zeigen Sie #message

CSS

#message{ 
    display:none 
} 

JQUERY

var sum=0; 
$("input[type=radio]").change(function() { 
    sum=sum+parseInt($(this).val());//ASSUMING VAL TO BE INT ONLY 
    sum>=2?$("#message").show():$("#message").hide() 
}); 

WORKING FIDDLE

Verwandte Themen