2017-05-19 15 views
0

Hat jemand eine Idee, warum meine JS-Funktion nicht funktioniert/mein Preis div zeigt überhaupt nichts?Einfache JS-Funktion funktioniert nicht

HTML:

<div id="variant"> 
    <label><input type="radio" name="toggle" id="3"><span>A</span></label> 
    <label><input type="radio" name="toggle" id="12" checked="checked"><span>B</span></label> 
    <label><input type="radio" name="toggle" id="24"><span>C</span></label> 
</div> 
<br> 
<div id="price"></div> 

JS:

function setPrice() { 
    if (document.getElementById('3').checked) { 
    document.getElementById('price').innerHTML = "19,99€"; 
    } else if (document.getElementById('12').checked) { 
    document.getElementById('price').innerHTML = "<<<"; 
    } else (document.getElementById('24').checked) { 
    document.getElementById('price').innerHTML = "xxx"; 
    } 
} 
+4

Wie rufen Sie SetPrice? Und ein regulärer "else" braucht kein Argument. – j08691

+0

Zumindest würden Sie 'setPrice();' benötigen, aber ich nehme an, dass Sie diese Funktion im Ereignis 'onChange' oder 'onClick' aufrufen möchten ... – War10ck

+1

Starten einer ID mit einer Nummer oder nur mit a Nummer, gilt als schlechte Praxis. http://stackoverflow.com/q/70579/1026459 hat eine Liste von geeigneten Werten für die ID. –

Antwort

2

Ein "else" Bedingung in einer Erklärung erfolgt nicht, wäre es IF/ELSE werden, wenn diese in Aussagen nimmt. Bitte beachten Sie das aktualisierte Code-Snippet!

function setPrice() { 
 
    if (document.getElementById('3').checked) { 
 
    document.getElementById('price').innerHTML = "19,99€"; 
 
    } else if (document.getElementById('12').checked) { 
 
    document.getElementById('price').innerHTML = "<<<"; 
 
    } else if (document.getElementById('24').checked) { 
 
    document.getElementById('price').innerHTML = "xxx"; 
 
    } 
 
} 
 

 
setPrice();
<div id="variant"> 
 
    <label><input type="radio" name="toggle" id="3" onClick="setPrice();"><span>A</span></label> 
 
    <label><input type="radio" name="toggle" id="12" onClick="setPrice();" checked="checked"><span>B</span></label> 
 
    <label><input type="radio" name="toggle" id="24" onClick="setPrice();"><span>C</span></label> 
 
</div> 
 
<br> 
 
<div id="price"></div>

0

Der Fehler kommt aus zwei Quellen.

  1. Sie rufen nicht setPrice()
  2. Ihre Linie else (document.getElementById('24').checked). Es sollte keine Bedingung geben, wenn keine if
Verwandte Themen