0

I have a variety of radio buttons and depending on the combination in which they are selected, I would like a message to appear in a span element when the user presses a button when they are satisfied with their input. However, it is not achieving this. Here is what my code looks like so far:

HTML:

<p>Select your first colour:</p>
<input type="radio" id="red" name="primary" value="0">Red<br>
<input type="radio" id="yellow" name="primary" value="1">Yellow<br>
<input type="radio" id="blue" name="primary" value="2">Blue<br>

<p>Select your second colour:</p>
<input type="radio" id="green" name="other" value="0">Green<br>
<input type="radio" id="white" name="other" value="1">White<br>
<input type="radio" id="purple" name="other" value="2">Purple<br>

<input type="button" id="mixColours" value="Mix!"><br />
<span id="colourResult"> </span><br /><br />

Javascript:

var $ = function(id) {
return document.getElementById(id);
};

var red = $("red");
var yellow = $("yellow");
var blue = $("blue");
var green = $("green");
var white = $("white");
var purple = $("purple");

var mixColours = function mixColours () {

if (red.checked && green.checked) {
    $("colourResult").innerHTML = "You made Yellow!";
}
else if (red.checked && white.checked) {
    $("colourResult").innerHTML = "You made Pink!";
}
else if (red.checked && purple.checked) {
    $("colourResult").innerHTML = "You made Mauve!";
}

if (yellow.checked && green.checked) {
    $("colourResult").innerHTML = "You made Yellow!";
}
else if (yellow.checked && white.checked) {
    $("colourResult").innerHTML = "You made Light Yellow!";
}
window.onload = function () {
    $("mixColours").onclick = mixColours;

Or jsfiddle here: http://jsfiddle.net/e2yjerm3/

If anyone could pick out my mistakes and help me out (or lead me to help articles), I would really appreciate it. I created this based on tutorials, etc. I've read, but I've seem to have gone astray.

Bee
  • 33
  • 1
  • 6

1 Answers1

1

demo - http://jsfiddle.net/victor_007/e2yjerm3/3/

2 } } were missing at the end

var $ = function(id) {
  return document.getElementById(id);
};

var red = $("red");
var yellow = $("yellow");
var blue = $("blue");
var green = $("green");
var white = $("white");
var purple = $("purple");

var mixColours = function mixColours() {

  if (red.checked && green.checked) {
    $("colourResult").innerHTML = "You made Yellow!";
  } else if (red.checked && white.checked) {
    $("colourResult").innerHTML = "You made Pink!";
  } else if (red.checked && purple.checked) {
    $("colourResult").innerHTML = "You made Mauve!";
  }

  if (yellow.checked && green.checked) {
    $("colourResult").innerHTML = "You made Yellow!";
  } else if (yellow.checked && white.checked) {
    $("colourResult").innerHTML = "You made Light Yellow!";
  }

}; /* this */
window.onload = function() {
  $("mixColours").onclick = mixColours;
}; /* this */
<p>Select your first colour:</p>
<input type="radio" id="red" name="primary" value="0">Red
<br>
<input type="radio" id="yellow" name="primary" value="1">Yellow
<br>
<input type="radio" id="blue" name="primary" value="2">Blue
<br>
<p>Select your second colour:</p>
<input type="radio" id="green" name="other" value="0">Green
<br>
<input type="radio" id="white" name="other" value="1">White
<br>
<input type="radio" id="purple" name="other" value="2">Purple
<br>
<input type="button" onclick="mixColours()" id="mixColours" value="Mix!">
<br />
<span id="colourResult"> </span>

<br />
<br />
Vitorino fernandes
  • 15,794
  • 3
  • 20
  • 39